Vue使用eventBus在不相干的两个页面间传值不生效。

题目描述

页面A中展示数据列表,点击某一数据后打开(window.open)新的页面B;
需要在页面B中emit,在A中on,接收页面B中的值;

相关代码

B页面:

import eventBus from '@/utils/eventBus'
created() {
  this.$EventBus.$emit('abc-edit','test')
}

A页面:

import eventBus from '@/utils/eventBus'
mounted() {
      this.$EventBus.$on('abc-edit', res=>{
        console.log(res)
      });
    },

main.js:

Vue.prototype.$EventBus = new Vue()`

eventBu.js

import Vue from 'vue'
const EventBus = new Vue()
export default EventBus

是哪里写的不对吗?on是从什么时候开始监听到什么时候结束呢?或者除了vuex,还有其他方法实现不同页面间传值吗??
(被困扰了两天,干活都没劲了,求解救)

阅读 3.3k
2 个回答

你$EventBus是一个vue实例,而你从eventBu.js导出的EventBus却又是另一个vue实例

用 vuex 吧。 eventBus 就是 vuex 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题