A页面发送消息给B页面,并触发事件
发送消息和事件:EventBus.publish()
接收信息:EventBus.on()
A页面:
//1、发送通知和命令
send(){
console.log('这里发送消息和事件给【B页面】')
EventBus.publish('housDetail', {data: res.data, actions: this.allListAction })
}
//action 返回
allListAction() {
console.log('从【B页面】触发了【A页面】的事件')
},
B页面:
import EventBus from 'eventing-bus'
var subscription
export default {
mounted() {
// 2、接收通知并触发事件
subscription = EventBus.on('housDetail', this.handleCallback)
},
methods: {
// 接收数据和事件
handleCallback({ title, data,actions }) {
this.data = data
this.actions = actions ? actions : () => {}
console.log("这里接收【A页面】发送的消息和事件")
},
beforeDestroy() {
// 卸载该订阅
subscription()
},
// 关闭前触发或通知 A页面的事件
close() {
// 触发事件
this.actions()
this.actions = () => {
console.log("这里触发对【A页面】的事件")
}
}
},
}