vue——兩種方式實現列表動態新增和刪除
阿新 • • 發佈:2019-01-29
下面將介紹兩種方式實現動態新增和刪除列表
1.不使用元件
初始介面: 新增一個列表:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 測試例項 - vue實現列表增加和刪除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body> <div id="app"> <input v-model="newAddText" placeholder="請輸入要新增的內容" /> <button @click='addNewList'>新增</button> <ul> <li v-for='(list,index) in lists' v-bind:key='list.id'> {{list.title}} <button v-on:click='lists.splice(index, 1)'>刪除</button> </li> </ul> </div> <script> var vm = new Vue({ el: '#app', data: { newAddText:'', lists:[ {id:1,title:'手機號碼'}, {id:2,title:'qq號'}, {id:3,title:'姓名'}, ], nextTodoId: 4 }, methods:{ addNewList:function(){ this.lists.push({ id:this.nextTodoId++, title:this.newAddText }) this.newAddText='' } } }) </script> </body> </html>
刪除一個列表:
2.使用元件方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 測試例項 - vue實現列表增加和刪除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body> <div id="app"> <input v-model="newAddText" placeholder="請輸入要新增的內容" /> <button @click='addNewList'>新增</button> <ul> <li is='list-item' v-for='(list,index) in lists' v-bind:key='list.id' v-bind:title='list.title' v-on:remove='lists.splice(index,1)'> </li> </ul> </div> <script> Vue.component('list-item', { template: '\ <li>\ {{ title }}\ <button v-on:click="$emit(\'remove\')">刪除</button>\ </li>\ ', props: ['title'] }) var vm = new Vue({ el: '#app', data: { newAddText:'', lists:[ {id:1,title:'手機號碼'}, {id:2,title:'qq號'}, {id:3,title:'姓名'}, ], nextTodoId: 4 }, methods:{ addNewList:function(){ this.lists.push({ id:this.nextTodoId++, title:this.newAddText }) this.newAddText='' } } }) </script> </body> </html>
效果跟上面的一樣的!