<body>
<!-- 1、在父组件中的methods中定义一个方法,在使用的子组件标签中v-click一个自定义的
组件中的方法。
2、在子组件中也v-click一个方法。在子组件的methods中去定义。子组件中的方法里利用
this.$emit去触发子组件标签中定义的属性,后面跟着的是子组件传给父组件的数据。 -->
<div id="app">
父亲:{{money}}
<!--@child-msg(属于儿子)='add'(属于父亲)相当于 child.$on('child-msg',add)-->
<child :m='money' @child-msg='add'></child>
</div>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script>
var vm = new Vue({
el:"#app",
data:{ money:400 },
methods:{
add(val){
this.money = val;
}},
components:{
child:{
props:["m"],
template:"<div>儿子:{{m}}<button @click='getMoney()'>加钱</button></div>",
methods:{
getMoney(){
this.$emit("child-msg",800) // 触发自己的自定义事件,让父亲的方法执行
}
}
}
}
})
</script>
</body>
网友评论