vue3 mitt路由跳转后 on事件获取不到值的奇葩问题解决

vue3不再支持大家试用this 那原型链这种东西自然是要命了
好在我们还有第三方插件mitt
但这东西是真的坑啊
比如我们定义 EventBus.emit
然后马上进行路由跳转

 EventBus.emit('datas',Acquis);
 router.push('payment')

然后在下一个组件中试用

EventBus.on('datas',data => {
    console.log(data);
})

你会奇异的发现这个方法压根不会触发

这个时候估计就很蒙了

我们可以在全局中找

let srith;
EventBus.on('*',(index,data) => {
	if(srith !== index){
	    srith = index;
	    console.log(data)
	}else{
	    return
	}
})

这样就可以把所有存在mitt中的值输出出来
如果我们只想要datas
那就

let srith;
 EventBus.on('*',(index,data) => {
      if(index == "datas"){
          if(srith !== index){
              srith = index;
              console.log(data)
          }else{
              return
          }
      }else{
          return
      }
  })
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue3中,当路由跳转不到页面时,有以下几种处理方法。 首先,你可以使用`router-link`标签来进行路由跳转。在模板中使用`router-link`标签,并设置相应的`to`属性来定义跳转的路径。当跳转的路径找不到对应的页面时,Vue Router会自动处理并显示一个默认的错误页面。 另外,你也可以使用`useRouter`函数来进行路由跳转。在Vue3中,由于`setup`组件是在初始化之前执行,所以无法直接使用`this.router.push`来进行跳转。取而代之的是,你需要从`vue-router`中引入`useRouter`函数,并在`setup`函数内部使用它来进行路由跳转。这样可以确保在初始化之后进行跳转操作。 总结起来,Vue3中处理路由跳转不到页面的方法有两种,一种是使用`router-link`标签进行跳转,另一种是在`setup`函数内部使用`useRouter`函数进行跳转。这样就可以有效地解决路由跳转不到页面的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3路由跳转方法](https://blog.csdn.net/jdhrucn/article/details/126945946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值