1. 程式人生 > >vue——兩種方式實現列表動態新增和刪除

vue——兩種方式實現列表動態新增和刪除

下面將介紹兩種方式實現動態新增和刪除列表

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>

效果跟上面的一樣的!