<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vue学习</title>
</head>
<body>
<div id="app">
<cpn @childbyvalue = "childbyvalue"></cpn>
</div>
<!-- 子组件 -->
<template id="cpn">
<div class="aside">
<ul>
<li v-for="item in categories">
<button @click="childClick(item)">{{item.name}}</button>
</li>
</ul>
</div>
</template>
</body>
<script src="js/vue.js"></script>
<script>
// 子组件
const cpn = {
template:"#cpn",
data:function(){
return {
categories:[
{id:'a',name:'热门推荐'},
{id:'b',name:'手机数码'},
{id:'c',name:'家用家电'},
{id:'d',name:'电脑办公'}
]
}
},
methods:{
childClick:function(item){
// console.log(item);
this.$emit('childbyvalue',item);
// this.$emit("function",param); 其中function为父组件定义函数
// param为需要传递参数
}
}
}
// root组件
const app = new Vue({
el:"#app",
components:{
cpn//相当于'cpn':cpn
},
methods:{
childbyvalue:function(val){
console.log(val);
}
}
});
</script>
</html>