vue.js实现简单增删效果

Vue.js 的核心是一个响应的数据绑定系统,它让数据与 DOM 保持同步非常简单。在使用 jQuery 手工操作 DOM 时,我们的代码常常是命令式的、重复的与易错的。Vue.js 拥抱数据驱动的视图概念。通俗地讲,它意味着我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。一旦创建了绑定,DOM 将与数据保持同步。每当修改了数据,DOM 便相应地更新。这样我们应用中的逻辑就几乎都是直接修改数据了,不必与 DOM 更新搅在一起。这让我们的代码更容易撰写、理解与维护。

html:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
 7     <script src="dist/vue.min.js"></script>
 8     <style type="text/css">
 9         [v-cloak] {
10           display: none;
11         }
12     </style>
13 </head>
14 <body>
15     <div class="container">
16         <div class="col-md-6 col-md-offset-3">
17             <h1>Vue demo</h1>
18
19             <div id="app">
20             <table class="table table-hover ">
21               <caption></caption>
22               <thead>
23                 <tr>
24                   <th>序号</th>
25                   <th>书名</th>
26                   <th>作者</th>
27                   <th>价格</th>
28                   <th>操作</th>
29                 </tr>
30               </thead>
31                 <tbody>
32                     <tr v-cloak v-for="book in books">
33                         <td>{{book.id}}</td>
34                         <td>{{book.name}}</td>
35                         <td>{{book.author}}</td>
36                         <td>{{book.price}}</td>
37                         <template v-if="book.id%2==0">
38                              <td class="text-left">
39                                      <button type="button" class="btn btn-success" @click="delBook(book)">删除</button>
40                               </td>
41                         </template>
42                         <template v-else>
43                                 <td class="text-left">
44                                     <button type="button" class="btn btn-danger" @click="delBook(book)">删除</button>
45                                 </td>
46                         </template>
47                     </tr>
48                   </tbody>
49
50             </table>
51
52                 <div id="add-book">
53
54                   <legend>添加书籍</legend>
55
56                 <div class="form-group">
57                       <label for="">书名</label>
58                          <input type="text" class="form-control" v-model="book.name">
59                 </div>
60
61                 <div class="form-group">
62                        <label for="">作者</label>
63                        <input type="text" class="form-control" v-model="book.author">
64                 </div>
65
66                 <div class="form-group">
67                     <label for="">价格</label>
68                     <input type="text" class="form-control" v-model="book.price">
69                 </div>
70
71                 <button class="btn btn-primary btn-block" v-on:click="addBook()">添加</button>
72                 </div>
73
74             </div>
75
76         </div>
77     </div>
78     <script type="text/javascript" src="1.js"></script>
79 </body>
80 </html>

js

new Vue({
    el: ‘#app‘,
    methods: {
        addBook: function() {
            //计算书的id
            this.book.id = this.books.length + 1;
            this.books.push(this.book);
            //将input中的数据重置
            this.book = {};
        },
        delBook: function(book) {
            var blength = this.books.length;
            this.books.splice(book.id-1, 1);
            for( var i = 0; i < blength ; i++) {
                if(book.id < this.books[i].id) {
                    this.books[i].id -= 1;
                }
            }  

        }
    },
    data: {
        book: {
            id: 0,
            author: ‘‘,
            name: ‘‘,
            price: ‘‘
        },
        books: [{
            id: 1,
            author: ‘曹雪芹‘,
            name: ‘红楼梦‘,
            price: 32.0
        }, {
            id: 2,
            author: ‘施耐庵‘,
            name: ‘水浒传‘,
            price: 30.0
        }, {
            id: ‘3‘,
            author: ‘罗贯中‘,
            name: ‘三国演义‘,
            price: 24.0
        }, {
            id: 4,
            author: ‘吴承恩‘,
            name: ‘西游记‘,
            price: 20.0
        }]
    }
 });
时间: 2024-10-06 11:16:32

vue.js实现简单增删效果的相关文章

angular4.0和angularJS、react.js、vue.js的简单比较

angularJS特性 模板功能强大丰富(数据绑定大大减少了代码量) 比较完善的前端MVC框架(只要学习这个框架,按照规定往里面填东西就可以完成前端几乎所有的的问题) 引入了Java的一些概念 angularJS的一些问题 性能问题[(脏检查机制)在angular中被废除了,整体性能被提升 路由问题[(使用的是第三方模块)在angular中路由器是主要的机制 作用域问题[(不能用原生的事件,想用就要调用一个方法)在angular中任何原生的事件都可以直接处理 表单验证问题[在angular中提供

基于vue.js的简单用户管理

功能描述:添加.修改.搜索过滤 效果图: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <title>简单用户管理</title> 5 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"

Vue.js实现tab切换效果

利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了vue后,开始要写出一些简单的特效. 1.2 实现思路是点击上方的标题,下方的内容随之发生改变,上方和下方用的是两个块,是兄弟节点,所以需要点击tab标题和下方内容一一对应,基予两个模块若下标相同是一个内容实现的. 1.3 tab切换第一步先要把HTML写好,这个第一步很关键,主要分为两块结构 <div id="app"> &l

vue.js的简单总结

这篇文章主要对vue的理解进行总结: 参考来源:http://blog.csdn.net/generon/article/details/72482844 vue.js是一套构建用户界面的渐进式框架,它的核心库只关注视图层.它相比之其它的框架来说要更加的轻便,易于上手,相对与大部分的框架在性能方面要好一些. 不过也有不足的地方:比如不能支持IE8及以下的IE版本. Vue.js的特性如下: 1.轻量级的框架 2.双向数据绑定 3.指令 4.插件化 Vue目前的的开发模式主要有两种:1.直接页面级

Vue.js最简单的代码

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>vue.js的入门</title> <!-- 导入 --> <script type="text/javascript" src="../jss/vue.js"></script> &l

原生js实现简单打字机效果

快过年了,公司基本没活,闲着也是闲着,就写了一个 打字机效果玩玩,感觉挺有意思的. 具体代码 请参见我的github,请戳这里 预览效果,请戳这里

js一些简单的效果

文字变换颜色 1 <script> 2 var cc = ['purple','white','black','yellow','gray','blue','green','red']; 3 var i = 0; 4 function myc(){ 5 var u= document.getElementsByTagName('h1')[0]; 6 u.style.color=cc[i++]; 7 if(i>=cc.length-1){ 8 i=0; 9 } 10 }setInterva

Vue.js简单入门

这篇文章我们将学习vue.js的基础语法,对于大家学习vue.js具有一定的参考借鉴价值,有需要的朋友们下面来一起看看. Vue.js是一个数据驱动的web界面库.Vue.js只聚焦于视图层,可以很容易的和其他库整合.代码压缩后只有24kb. 以下代码是Vue.js最简单的例子, 当 input 中的内容变化时,p 节点的内容会跟着变化. <!-- html --> <div id="demo"> <p>{{message}}</p> &

Vue.js 是什么

Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 如果你是有经验的前端开发者,想知道 Vue.js 与其它库/框架的区别,查看对比其它框