<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Hello Vue</title>
<script src="./js/vue.js"></script>
</head>
<body>
<div id="root">
<input type="text" v-model="inputValue" />
<button @click="handleBtnClick">提交</button>
<ul>
<todo-item :content="item"
:index="index"
v-for="(item, index) in list"
@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: '#root',
components: {
TodoItem: TodoItem
},
data: {
inputValue: '',
list: []
},
methods: {
handleBtnClick: function () {
this.list.push(this.inputValue);
this.inputValue = ''
},
handleItemDelete: function(index){
this.list.splice(index, 1);
}
}
});
</script>
</body>
</html>