uniapp有两个页面A页面有个按钮点进去是B页面A页面的数据是从后端拿过来渲染的当B页面修改一个东西的同时A页面的这个也会发生改变相当重新刷新A页面怎么用eventBus实现这个功能
要使用eventBus在A页面和B页面之间进行数据通信,可以按照以下步骤进行操作:
- 在main.js中引入eventBus,并将其挂载到Vue的原型上:
import Vue from 'vue'
import App from './App.vue'
// 创建一个eventBus实例
const eventBus = new Vue()
// 将eventBus挂载到Vue原型上
Vue.prototype.$eventBus = eventBus
new Vue({
render: h => h(App),
}).$mount('#app')
- 在A页面中监听B页面修改的事件,当事件触发时,更新A页面的数据:
export default {
data() {
return {
dataFromBackend: null
}
},
mounted() {
// 监听B页面修改的事件
this.$eventBus.$on('dataChanged', (newData) => {
this.dataFromBackend = newData
})
}
}
- 在B页面中修改数据并触发事件:
export default {
methods: {
modifyData() {
// 修改数据
const newData = 'new data'
// 触发事件,将修改后的数据传递给A页面
this.$eventBus.$emit('dataChanged', newData)
}
}
}
这样,当B页面修改数据并触发事件时,A页面会接收到事件并更新数据,从而实现了A页面的重新渲染。
原文地址: https://www.cveoy.top/t/topic/jdnP 著作权归作者所有。请勿转载和采集!