可以使用 `vuex` 或者 `EventBus`。 以`EventBus`为例,创建一个新的 `vue` 实例,通过全局注册,让所有 `vue` 都能访问到同一个实例,然后通过 `$emit` 与 `$on` 做到跨页面、跨层级的事件监听。 只需要在要分发数据的文件中调用 `this.$bus.$emit('onMsg', msg)`,需要监听的文件在 `mounted` 周期中注册监听事件 `this.$bus.$on('onMsg', function(msg))`即可。 > 记得在页面卸载时调用 `this.$bus.$off('onMsg', function(msg))`关闭监听,不然可能会有重复监听的问题。 bus.js import vue from 'vue' export default new vue() main.js import Bus from './bus' vue.prototype.$bus = Bus 主页面 this.$bus.$emit('事件名', '数据') 子组件 this.$bus.$on('事件名', function() => {})