<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/vue2.js"></script>
</head>
<body>
<div id="app">
<father></father>
</div>
<script>
//创建一个空的vue实例,作为事件总线
var test = new Vue()
Vue.component('father', {
template: `<div>
<son></son>
<daughter></daughter>
</div>`,
components: {
son: {
template: `<div>我妹妹告诉我她叫{{mysisterName}}</div>`,
data() {
return {
mysisterName: '?'
}
},
mounted() {
//通过test的$on()方法去监听兄弟节点发射过来的事件
//$on有两个参数,一个是事件名称,一个是函数,该函数的默认值是传递过来的数据
test.$on('tellName', data => {
this.mysisterName = data
})
}
},
daughter: {
template: `<button @click='tellName'>点击就告诉哥哥我叫{{myName}}</button>`,
data() {
return {
myName: '萍萍'
}
},
methods: {
tellName() {
test.$emit('tellName', this.myName)
}
}
}
}
})
var vm = new Vue({
el: '#app',
data: {
}
})
</script>
</body>
</html>
兄弟组件间的传值
猜你喜欢
转载自blog.csdn.net/weixin_42442123/article/details/85790457
今日推荐
周排行