uniapp移动端的app的事件总线进行方法的触发EventBus

本文介绍了在uniapp中如何利用事件总线(EventBus)解决A到B页面回退时组件数据未更新的问题。当A页面的提交按钮触发`this.EventBus.emit('aMsg')`,B页面在`mounted`阶段通过`this.EventBus.on('aMsg', (msg) => { this.handleReload() })`监听并调用`handleReload()`方法,从而在返回A页面时重新加载数据。" 137385043,22837968,ESP8266作为TCP Server与远程控制,"['嵌入式', 'ESP8266', 'TCP/IP', '无线通信', '物联网']
摘要由CSDN通过智能技术生成

应用场景,A,B两个页面,从A跳到B页面,点击提交按钮,然后再点击手机实体键返回A页面,有一个组件的数据没有更新,原因是onload没有触发,但是又不会写,这时候可以事件总线(eventBus)进行,
注:
e m i t 抛 出 的 是 什 么 方 法 , emit抛出的是什么方法, emi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在uni-app中,您可以通过全局事件总线或者Vuex来实现App双向监听,当您触发事件时,另一方面可以收到您触发事件。 1. 使用全局事件总线: 在main.js文件中创建一个全局的Vue实例,并使用它作为事件总线: ```javascript // main.js import Vue from 'vue' Vue.prototype.$eventBus = new Vue() ``` 在需要发送事件的组件中,使用`$emit`方法触发自定义事件,并将需要传递的数据作为参数传递: ```javascript // ComponentA.vue export default { methods: { triggerEvent() { this.$eventBus.$emit('myEvent', 'Hello from Component A') } } } ``` 在需要接收事件的组件中,使用`$on`方法监听自定义事件,并定义一个回调函数处理接收到的事件: ```javascript // ComponentB.vue export default { created() { this.$eventBus.$on('myEvent', this.handleEvent) }, destroyed() { this.$eventBus.$off('myEvent', this.handleEvent) }, methods: { handleEvent(data) { console.log(data) // 输出 'Hello from Component A' } } } ``` 通过全局事件总线,Component B可以监听并接收到Component A触发事件。 2. 使用Vuex: 在store中定义一个状态,用于存储需要共享的数据: ```javascript // store/index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { eventData: '' }, mutations: { setEventData(state, data) { state.eventData = data } }, actions: { triggerEvent(context, data) { context.commit('setEventData', data) } } }) export default store ``` 在需要发送事件的组件中,通过dispatch方法触发一个action: ```javascript // ComponentA.vue export default { methods: { triggerEvent() { this.$store.dispatch('triggerEvent', 'Hello from Component A') } } } ``` 在需要接收事件的组件中,通过mapState将store中的eventData映射到组件的计算属性中,实时监听数据的变化: ```javascript // ComponentB.vue import { mapState } from 'vuex' export default { computed: { ...mapState(['eventData']) }, watch: { eventData(newValue) { console.log(newValue) // 输出 'Hello from Component A' } } } ``` 通过Vuex,Component B可以实时监听并接收到Component A触发事件。 以上是在uni-app中实现App双向监听的两种方式,您可以根据自己的需求选择其中一种来实现。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值