Vue 中监听路由信息
一、监听路由从哪来到哪去
watch:{ $route(to,from){ console.log(from.path);//从哪来 console.log(to.path);//到哪去 } }
二、监听路由变化获取新老路由
watch:{ $route:{ handler(val,oldval){ console.log(val);//新路由信息 console.log(oldval);//老路由信息 }, // 深度观察监听 deep: true } }
三、监听路由变化触发方法
1、
watch: { '$route'() { console.log('111') } }
2、
methods:{ getPath(){ console.log(1111) } }, watch:{ '$route':'getPath' }
四、全局监听路由
import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const router = new Router({ routes: [ { path: '/wechat-user-statistics', name: 'wechat-user-statistics', component: WechatUserStatistics }, .... ] }) // 全局监听路由 router.beforeEach((to, from, next) => { console.log(to); next(); }); export default router
五、组件中监听路由
beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 `this` // 因为当钩子执行前,组件实例还没被创建 }, beforeRouteUpdate (to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。 // 可以访问组件实例 `this` }, beforeRouteLeave (to, from, next) { // 导航离开该组件的对应路由时调用 // 可以访问组件实例 `this` }
转载于:https://blog.csdn.net/Umbrella_Um/article/details/107512056