Vue入门 Demo4 子父组件相互传值(实现TodoList在列表展示后点击数据自动删除)
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" />
<title>TodoList</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<!--v-model 双向绑定inputValue-->
<input type="text" v-model="inputValue"/>
<!--点击button将加载点击事件-->
<button v-on:click="handlerBtnClick">提交</button>
<ul>
<!-- <li v-for="item in list">{{item}}</li> -->
<!-- 调用组件 v-bind="item":指向子组件传递值 @delete="handleItemDelete:对子组件进行监听 index指下标 注意:v-bind可以省略-->
<todo-item v-for="(item,index) in list"
v-bind:content="item"
v-bind:index="index"
@delete="handleItemDelete">
</todo-item>
</ul>
</div>
<script>
var TodoItem = {
props: ['content','index'],
template: "<li @click='handleItemClick'>{{content}}</li>",
methods: {
handleItemClick: function(){
this.$emit("delete", this.index)
}
}
}
var app = new Vue({
el: '#app',
components: {
TodoItem: TodoItem,
},
data: {
list: [],
inputValue: '',
},
methods: {
handlerBtnClick: function() {
this.list.push(this.inputValue);
this.inputValue = '';
},
handleItemDelete: function(index){
this.list.splice(index,1);
}
}
})
</script>
</body>
</html>