vue-router如何实现A组件跳转到B组件后通过$emit传值到B组件?

A组件里面的跳转与$emit代码:

        this.$router.push({path: '/modify'})
        this.$bus.emit('modifyEvent', good)

B组件里面的接收代码:

    created () {
      this.$bus.on('modifyEvent', (good) => {
        console.log(good)
      })
    },

现在的问题就是,
B组件的事件监听定义在create钩子里面,
必须要创建B组件才能监听A组件传来的事件,
所以要从A组件跳转到B组件(创建B组件)
那么问题来了,
A组件跳转之后,就无法从A组件$emit事件到B组件了呀~(跳转下面的代码不执行了)


所以我的想法是有没有显示预加载B组件的方法,就是先让B组件执行create里面的方法
然后从A组件传递事件和参数过去。


很菜鸟的问题,谢谢各位大佬~

阅读 3k
1 个回答

meta 不能用 换成 params

A:
this.$router.push({name: 'modify',params: {modifyEvent : good }})
//注意这里必须用name,不能用path,如果用path的话,params会被忽略

B:
console.log(this.$route.params.modifyEvent)


为什么不在route里带过去

A:
this.$router.push({path: '/modify',meta:{modifyEvent : good}})

B:
console.log(this.$route.meta.modifyEvent)

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