vue中监听路由参数的变化,并对参数变化后作出一些响应(动态路由下参数的变化)

记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察 $route 对象来应对这些变化,或使用 beforeRouteUpdate 的组件内守卫。

当路由变化,但是组件被复用时,即:

当多个路由都匹配一个动态路由时,比如 "/user/123"  , "/user/456" 都匹配下面的路由

{
    name:'dancanshu',
    path: '/user/:id',//单参数路由匹配
    component: () => import('../views/more.vue')
  },

如何监听路由变化了呢?可以通过以下两种方式:

方式一:监听 $route 

  watch:{
       '$route' (to, from) {
      // 想对路由参数的变化作出响应的话,你可以简单地 watch (监测变化) $route 对象
      console.log(to, from)
    }
  },

方式二:通过组件内的导航守卫,beforeRouteUpdate , (和created(){}生命周期函数同级别);

  beforeRouteUpdate (to, from, next) {
     console.log('to:',to)
     console.log('from:', from)
     next();// 记得next()
  },

 

你可能感兴趣的:(vue-router)