<!DOCTYPE html>
<html>
<head>
<title>父子组件通信</title>
<meta charset="utf-8">
</head>
<body>
<!-- 父组件模板 -->
<div id="app">
<cpn @itemclick="cpnClick"></cpn>
</div>
<!-- 子组件模板 -->
<template id="cpn">
<div>
<button v-for="item in categories" @click="btnClick(item)">{{item.name}}</button>
</div>
</template>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">
// 子组件
const cpn = {
template:'#cpn',
data(){
return {
categories:[{id:'aaa',name:'热门推荐'},
{id:'bbb',name:'手机数码'}
]
}
},
methods:{
btnClick(item){
//console.log(item)
// 发射事件 (自定义事件)
this.$emit('itemclick',item)
}
}
}
// 父组件
let app = new Vue({
el:"#app",
data:{
},
components:{
cpn
},
methods:{
cpnClick(item){
console.log(item)
}
}
})
</script>
</body>
</html>