zoukankan      html  css  js  c++  java
  • vue.js实现简单增删效果 出自http://www.cnblogs.com/chenzechuang/

    Vue.js 的核心是一个响应的数据绑定系统,它让数据与 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
            }]
        }
     });
    复制代码
  • 相关阅读:
    跳出iframe
    leetcode 225. Implement Stack using Queues
    leetcode 206. Reverse Linked List
    leetcode 205. Isomorphic Strings
    leetcode 203. Remove Linked List Elements
    leetcode 198. House Robber
    leetcode 190. Reverse Bits
    leetcode leetcode 783. Minimum Distance Between BST Nodes
    leetcode 202. Happy Number
    leetcode 389. Find the Difference
  • 原文地址:https://www.cnblogs.com/shatonghui/p/6829265.html
Copyright © 2011-2022 走看看