this.$route.path 和 location.href获取的值不一样

引言:

vue项目中动态加载路由组件this. r o u t e . p a t h 获取不正确(获取是‘ / ‘而不是‘ / f o r g e t P w d ’)浏览器中的路由是 / f o r g e t P w d ,路由全局钩子 r o u t e r . b e f o r e E a c h 得到的 p a t h 也是 / f o r g e t P w d , 但是在页面 i n d e x . v u e 中的生命周期 c r e a t e d 获取到的 p a t h 是 / ,这个时候想到 t h i s . route.path获取不正确(获取是‘/‘而不是‘/forgetPwd’) 浏览器中的路由是/forgetPwd,路由全局钩子router.beforeEach得到的path也是/forgetPwd,但是在页面index.vue中的生命周期created获取到的path是/,这个时候想到 this. route.path获取不正确(获取是‘/‘而不是‘/forgetPwd)浏览器中的路由是/forgetPwd,路由全局钩子router.beforeEach得到的path也是/forgetPwd,但是在页面index.vue中的生命周期created获取到的path/,这个时候想到this.route.path 的底层获取逻辑是location.href,那我同时去打印location.href,得到的却和router.beforeEach里面得到的一样,也就是说 this.$route.path 和 location.href 得到的值不一样

原因:

问题出在当项目启动时,懒加载方式,路由加载注册的时候没有加载path:‘/forgetPwd’下的$route
查看路由配置 ,懒加载方式
const forgetPwd= r => require.ensure([], () => r(require(’@/components/forgetPwd.vue’)), ‘forgetPwd’)
改成
import forgetPwd from ‘@/components/login/forgetpwd.vue’
这时候在查看路由,发现完美解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值