不多說,直接上代碼
下面的知識點包含
1.emit("事件名") 主動觸發一個事件
2.@delete 等價於 v-on:click
3.v-bind: 等價於 :
4.v-bind 綁定屬性
5.v-for="(item,index) in list 獲取列表中的每個值及其下標(從0開始)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>簡單的組件傳值</title>
<script src="vue.js"></script>
</head>
<body>
<div id = 'app2'>
<input type='text' v-model='inputVal'/>
<button @click='addToList'>提交</button>
<ul >
<com v-bind:con1="item" v-bind:index="index" v-for="(item,index) in list"
@delete="deleteOne" ></com>
</ul>
</div>
<script>
var com = {
props:['con1','index'],
template:'<li @click="itemClick">{{con1}}</li>',
methods:{
itemClick:function(){
this.$emit("delete",this.index);
}
}
};
var app = new Vue({
el:'#app2',
data:{
list:[],
inputVal : ''
},
components:{
com:com
},
methods:{
addToList:function(){
this.$data.list.push(this.inputVal);
this.inputVal = '';
},
deleteOne:function(index){
alert(index);
this.list.splice(index,1);
}
}
});
</script>
</body>
</html>