
子組件代碼:
<template id="cpn1">
<div>
<button v-for="item in categories"
@click="btnclick(item)">
{{item.name}}
</button>
</div>
</template>
const cpn = {
template:'#cpn1',
data(){
return{
categories:[
{id:'aaa',name:'家電'},
{id:'bbb',name:'玩具'},
{id:'ccc',name:'彩妝'},
{id:'ddd',name:'家具'},
]
}
},
methods:{
btnclick(item){
// 子組件向父組件發射自定義事件(自定義事件名字,自定義事件參數)
this.$emit('itemclick',item)
}
}
}
父組件代碼:
<!-- 父組件模板 -->
<div id="app">
<!-- 子組件自定義的事件 = 父組件定義的事件 -->
<mycpn @itemclick="cpnclick"></mycpn>
</div>
const app = new Vue({ el:"#app", data:{ message:'你好啊', movies:['小時代','前任','匆匆那年','蠟筆小新','大頭娃娃'] }, components:{ mycpn:cpn, }, methods:{ cpnclick(item){ console.log(item.id) } } })
