使用场景:两个组件之间互通信息
使用bus.
e
m
i
t
配合
b
u
s
.
emit配合bus.
emit配合bus.on实现数据互通
html部分:
<body>
<div id="app">
<child1></child1>
<child2></child2>
</div>
</body>
js部分:
<script>
const bus = new Vue();
Vue.component('child1', {
template: `
<div id="child1">
<input v-model="sendMsg" />
<button @click="handleClick">发布信息</button>
</div>
`,
data() {
return {
sendMsg: ''
}
},
methods: {
handleClick() {
bus.$emit('sendMsg', this.sendMsg)
}
}
})
Vue.component('child2', {
template: `
<div id="child1">
{{showMsg}}{{receiveMsg}}
</div>
`,
data() {
return {
showMsg: '接收到的信息:',
receiveMsg: ''
}
},
mounted() {
bus.$on('sendMsg', (data) => {
this.receiveMsg = data;
})
}
})
const vm = new Vue({
el: '#app',
data: {
}
});
</script>