有关vue全局事件总线无法触发

什么?你的全局事件总线无法触发!组件间的无法正常通信!mounted钩子虽然好用,但从组件生命周期加载顺序来说,它并不能总是回应你的期待。

假设当前组件结构为:APP组件 ——> 父组件 ——>子组件

当刷新子组件所在页面时,生命周期执行顺序为(只写关键的钩子):APP组件beforemount父组件beforecreate beforemount 再到 子组件beforecreate  mounted,当子组件挂载完毕也就是mounted后 才是父组件mounted 然后 APP组件mounted

通俗的说就是:在APP组件的beforemount 到 mounted之间要从头到尾挂载完 父组件

                        在父组件的beforemount 到 mounted之间要从头到尾挂载完子组件

所以在子组件的mounted钩子里是无法访问父组件mounted里的任何方法的,如果将给数据赋值如读取sessionstorage中的值给到vuex,刷新子组件所在页面,是无法展示数据的

解决办法就是把方法放到父组件的created或者beforemount钩子里

当同级路由跳转时通过全局事件总线传递数据时,生命周期执行顺序:a(mounted) ——>b(beforecreate ——>beforemount) ——>a销毁——>b(mounted)

所以在b的created或者beforemount钩子里绑定事件,在a的beforedestroy钩子处去触发该事件

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值