vuerouter beforeeach,vue中beforeRouteEnter
本文主要介绍了vue路由器的beforeRouteUpdate问题及其解决方法,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。
目录
vue-router beforeRouteUpdate不触发beforeRouteEnter和beforeRouteUpdate的pit。
vue-router beforeRouteUpdate不触发
官方beforeRouteUpdate的解释如下:
beforeRouteUpdate(收件人,发件人,下一个){
//当当前路由改变,但组件被多路复用时调用
//比如对于一个带有动态参数的path /foo/:id,在/foo/1和/foo/2之间跳转时,
//由于将呈现相同的Foo组件,组件实例将被重用。在这种情况下这个钩子将被调用。
//可以访问组件实例` this。
},
不能触发的原因可以在评论的第二行和第三行找到。只会调用动态参数的路径(比如/foo/1和/foo/2)。
我尝试对router动态处理
vue。$router.push({ path: path,query:{ t:(new Date())} });
在这种情况下,beforeRouteUpdate成功触发。
考虑修改你的路由器链接写和添加一个参数。代码示例如下:
Router-link: to= {path:/home ,query:{ t:newdate()} } home/router-link
当然,最重要的是,这个方法是组件中的导航卫士,切换路由组件。根据你目前的代码功能,如果你想触发,
除了路由器链路参数之外,还需要修改路由器视图。
点火电极
路由器视图/路由器视图
/保持活力
另外可以采用如下解决办法:
观察:{
$路线(至,自){
console.log(到);
console.log(来自);
}
}
尝试相同的解决方案,vue-router路由跳转创建不执行,页面不刷新。
beforeRouteEnter和beforeRouteUpdate的坑
Forerouteenter是新输入的路由。比如进入/login登录界面会触发钩子beforeRouteEnter
更新路线时触发BeforeRouteUpdate。从首页进入登录界面不会触发这个钩子功能,但是一个父路由下的子路由跳转会触发这个钩子功能。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。