组件通信之子传父:
当子组件发生了某事件,子组件发射该事件
父组件监听该事件并作出反应
核心代码如下:
<body>
<!--父组件模板-->
<div id="app">
<cpn @item-click="cpnClick"></cpn>
</div>
<!--子组件模板-->
<template id="cpn">
<div>
<button v-for="item in categories"
@click="btnClick(item)">
{{item.name}}
</button>
</div>
</template>
<script src="../Vue_js/vue.js"></script>
<script>
//1、子组件
const cpn = {
template: '#cpn',
data() {
return {
categories: [
{id: 'aaa', name: '热门推荐'},
{id: 'bbb', name: '手机数码'},
{id: 'ccc', name: '家用家电'},
{id: 'ddd', name: '电脑办公'},
]
}
},
methods: {
btnClick(item) {
//发射事件
this.$emit('item-click', item)
}
}
}
//2、父组件
const app = new Vue ({
el: '#app',
data: {
message: 'vue模板',
},
components: {
cpn
},
methods: {
cpnClick(item) {
console.log('cpnClick', item);
}
},
})
</script>
</body>