watch能够监听,或者beforeRouteUpdate 钩子函数监听。用途?
用途:若是目的地和当前路由相同,只有参数发生了改变 (好比从一个用户资料到另外一个
/users/1 -> /users/2),你须要使用 beforeRouteUpdate 来响应这个变化 (好比抓取
用户信息)。vue
路由模式(history、
hash 和 abstract)路由的push等同window.history.pushState(一个状态对象,
title, url)vue-router
使用props 将组件和路由解耦浏览器
路由守卫(钩子函数session
全局的,单个路由独享的, 组件级的
全局:router.beforeEach(to, from, next)异步解析 状态有“等待中”,“肯定的”
router.afterEach(to, from)
路由独享钩子:beforeEnter(to, from, next) 用法同全局的
router.beforeEach()
组件级:异步
beforeRouteEnter(to,from, next) // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 this // 由于当守卫执行前,组件实例还没被建立 beforeRouteUpdate(to,from, next) // 在当前路由改变,可是该组件被复用时调用 // 举例来讲,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之 间 //跳转的时候, // 因为会渲染一样的 Foo 组件,所以组件实例会被复用。而这个钩子就会在这个状况下 被调用。 // 能够访问组件实例 `this` beforeRouteLeave(to,from, next ) // 导航离开该组件的对应路由时调用 // 能够访问组件实例 `this`
beforeRouteLeave 这个钩子函数颇有用,顾名思义,导航离开该组件对应的路由调用,能够作一些
离开时候的comfirm判断,好比有重要的信息须要用户保存后才能进行跳转、存储session、清除定
时器等。函数
const router = new VueRouter({ routes: [...], scrollBehavior (to, from, savedPosition) { // return 指望滚动到哪一个的位置 } })
参考文献ui