Vue中子传父($emit)

子组件代码:
<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) } } })

浙公网安备 33010602011771号