vue-router,路由按需加载,页面加载完成后,this.$route 获取不到

vue-router,路由按需加载,页面加载完成后,this.$route 获取不到,第1张

1问题描述

页面中需要路由匹配给当前路由高亮,所以就需要获取当前路由的path,但是发现获取不到

在 mounted 中打印 $route:

获取到的值不对。path 和 fullPath ,明明应该有值,但只有一个 "/" 。

可能在 mounted 中router 的初始化还没有完成,所以取到的是一个初始默认值。

加一个延时试试:

可以发现,有时能获取到,有时获取不到,延时到2000以后,目前测试的是都能获取到。

问题推测:

vue-router 初始化是需要一段时间的,在完成之前,取值只能拿到初始的默认值。

在 mounted 中 router 初始化可能还没有完成。

2用onReady解决

上面用定时器延迟了1000ms,有时能取到 router,于是加长延时时间到2000解决,但是,真正要解决这个问题,肯定不能用定时器,因为延迟的时间无法确定:

长了,影响体验

短了,可能router初始化还没完成

查阅官网API,希望官方提供了 初始化完成时的回调方法 ,果然找到了: onReady

经测试,通过。

不会。vuex中watch的使用,在全局路由守卫中想要通过store拿到异步请求的数据是无法拿到的。常见使用vuex,是store模块文件写相关的数据信息。vuex是一个专门为vue,js应用程序开发的状态管理模式,采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

在使用Vue3hooks中使用路由,首先要先安装vue-router,在mainjs中引入,然后创建一个router实例,并在Vue实例中使用,在需要使用的组件中,使用useRouter获取路由实例,然后就可以使用路由的API进行 *** 作,比如跳转页面、获取路由参数等。

在一些情况下,一个页面的path路径可能是不确定的,比如我们进入到用户界面时,希望是如下的路径:

- /user/aaa 或者 user/bbb 。

3、在 appvue 中的使用

4、 uservue 组件中获取到 userId ,这里的 userId 对应的就是路由映射中的参数

以上就是关于vue-router,路由按需加载,页面加载完成后,this.$route 获取不到全部的内容,包括:vue-router,路由按需加载,页面加载完成后,this.$route 获取不到、vue中路由里会去获取vuex中数据吗、vue3hooks中使用路由等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10153955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存