官方对于beforeRouteUpdate的解释如下:beforeRouteUpdate (to, from, next) {// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,...
官方对于beforeRouteUpdate的解释如下:
beforeRouteUpdate (to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /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写法,加个参数,代码示例如下:
<router-link?:to="{path:'/home',query: {t: new Date()}}">首页</router-link>
当然,最主要的是,这个方法是组件内的导航守卫,切换路由组件,按你目前的代码功能来看,如果想触发,
除了router-link要带参数,还需要修改router-view
<keep-alive>
<router-view></router-view>
</keep-alive>
另外可以采用如下解决办法:
watch: {
$route(to, from) {
console.log(to);
console.log(from);
}
}
同样试用 vue-router路由跳转created不执行,页面不刷新的解决办法
参考:https://segmentfault.com/q/1010000015823449
沃梦达教程
本文标题为:vue-router的beforeRouteUpdate不触发
基础教程推荐
猜你喜欢
- JS滚动到顶部踩坑解决记录 2023-07-10
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- Ajax+smarty技术实现无刷新分页 2022-12-15
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- HTML clearfix清除浮动讲解 2022-11-20
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- Ajax发送和接收请求 2022-12-15