vue怎么跨页面调用方法
时间: 2023-10-29 08:59:29 浏览: 94
在 Vue 中,可以通过事件总线或 Vuex 来实现跨页面调用方法。
1. 事件总线
在 main.js 中创建一个事件总线:
```
import Vue from 'vue'
export const EventBus = new Vue()
```
在需要调用方法的页面中,使用 `EventBus.$emit` 触发事件:
```
import { EventBus } from '@/main.js'
// 调用方法
EventBus.$emit('some-event', arg1, arg2)
```
在需要接收事件并执行方法的页面中,使用 `EventBus.$on` 监听事件:
```
import { EventBus } from '@/main.js'
// 监听事件
EventBus.$on('some-event', (arg1, arg2) => {
// 执行方法
})
```
2. Vuex
在 store.js 中,定义一个 action:
```
const actions = {
someAction ({ commit }, payload) {
// 执行方法
}
}
```
在需要调用方法的页面中,使用 `this.$store.dispatch` 分发 action:
```
// 调用方法
this.$store.dispatch('someAction', payload)
```
在需要接收事件并执行方法的页面中,可以在 computed 或 methods 中定义一个 getter 函数来获取状态:
```
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(['someGetter'])
},
methods: {
// 执行方法
}
}
```
阅读全文