在uni-app中,两个不同的页面可以通过以下方法互相调用方法:

  1. 使用事件总线(EventBus):创建一个全局的事件总线,在其中定义事件和对应的回调函数。在需要调用方法的页面中,通过事件总线触发相应的事件,在另一个页面中监听该事件,并执行对应的方法。
// 创建事件总线
import Vue from 'vue'
export const bus = new Vue()

// 页面A中触发事件
import { bus } from '@/utils/eventBus.js'
bus.$emit('eventName', params)

// 页面B中监听事件
import { bus } from '@/utils/eventBus.js'
bus.$on('eventName', (params) => {
  // 执行相应的方法
})
  1. 使用vuex:将需要调用的方法定义在vuex的actions中,通过dispatch方法调用。在另一个页面中通过mapActions将actions映射到组件中,然后可以直接调用。
// 在store中定义actions
const actions = {
  methodName({ commit }, params) {
    // 执行相应的方法
  }
}

// 页面A中调用方法
import { mapActions } from 'vuex'
export default {
  methods: {
    ...mapActions(['methodName']),
    invokeMethod() {
      this.methodName(params)
    }
  }
}

// 页面B中调用方法
import { mapActions } from 'vuex'
export default {
  methods: {
    ...mapActions(['methodName']),
    invokeMethod() {
      this.methodName(params)
    }
  }
}

需要注意的是,以上两种方法都需要在页面中引入对应的文件或模块,并进行配置。

在uniapp中两个不同的页面怎么互相调用方法

原文地址: https://www.cveoy.top/t/topic/jdrJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录