vue-router的$route监听失效问题
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
vue-router的$route监听失效问题
在项目中使用vue的时候发现使用watch监听不到$route的变化
在项目中遇到使用watch监听$route变化的时候失效,现在整理一下
watch: {
$route(to, from) {
console.log(to, from)
}
}
// 监听失效
一.watch监听
- 一级路由:将匹配到的路由组件直接渲染在router-view区域中,路由组件渲染默认的方式是销毁 - 创建,因此$watch是监听不到一级路由的变化的。
watch: {
$route: {
handler(to, from) {
console.log(to, from)
},
immediate: true
}
}
// 路由变化时候直接监听,但是监听不到from的值,只能监听to
- 监听子路由:有子路由的情况下,能在当前组件监听到子组件的路由变化
watch: {
$route(to, from) {
console.log(to, from)
}
}
二,使用vue自带的路由守卫beforeRouteEnter ,beforeRouteUpdate ,beforeRouteLeave
beforeRouteEnter (to, from, next) {
next(vm => {
// 不能获取组件实例‘this’,因为此时组件实例还没有被创建
// 通过 `vm` 访问组件实例
})
},
beforeRouteUpdate (to, from, next) {
// 可以获取this
},
beforeRouteLeave (to, from, next) {
// 可以获取this
}
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)