监听 Vue Router 的变化

2019-04-26 21:05:51 +08:00
 ghostheaven

用 beforeUpdate 还是 watch $route,这两种方式是不是等价的?

3304 次点击
所在节点    Vue.js
5 条回复
ss098
2019-04-26 21:23:50 +08:00
watch $route 才是用来监听变化的吧,beforeUpdate 其他情况也会触发。
ss098
2019-04-26 21:23:50 +08:00
watch $route 才是用来监听变化的吧,beforeUpdate 其他情况也会触发。
ghostheaven
2019-04-26 21:26:30 +08:00
@ss098 哪些情况?
ss098
2019-04-26 21:58:50 +08:00
Everyman
2019-04-26 23:01:07 +08:00
应该使用 Vue Router 的导航守卫吧。
https://router.vuejs.org/guide/advanced/navigation-guards.html#global-before-guards

例如,在 Electron 中不能直接看到 chrome 的当前 URL,所以我就用 Vue Router 的 `router.afterEach` 每次路由变化后在 console 打印当前路由信息,以验证路由没错误。
ghostheaven
2019-04-30 09:14:40 +08:00
@yiranHZT @ss098 在 so 上找到一个答案,说 2.2 之前只能用 watch $route,之后增加了 beforeRouteUpdate,可以达到相同的功能。一个区别是 beforeRouteUpdate 只能在声明它的组件上有效(我理解应该是说只能在 router view 上),在子组件上不会被调用,而 watch 可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX