子組件代碼:
<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) } } })