Vue 路由传参方式和路由监听

this.$router.push传递参数有2种方式:

传递参数  -- this.$router.push({path: ' 路由 ', query: {key: value}})

参数取值  -- this.$route.query.key

使用这种方式,传递参数会拼接在路由后面,出现在地址栏.

path---------》query

 

传递参数  -- this.$router.push({name: ' 路由的name ', params: {key: value}})

参数取值  -- this.$route.params.key

使用这种方式,参数不会拼接在路由后面,地址栏上看不到参数..

动态路由也是传递params的,所以在 this.$router.push() 方法中 path不能和params一起使用,否则params将无效。需要用name来指定页面。

name---------》params

Watch监听路由跳转和一般对象

Vue 路由传参方式和路由监听Vue 路由传参方式和路由监听

deep:是否深度监听 

         false::只监听到对象级别,没有深入到对象属性

         True:深度监听,监听级别深入到对象属性

immediate:是否立即监听

         false:初始化时不监听

         True:页面初始化时即使没有变化也监听

注意:一般属性的监听,必须要是在data中定义才行,具体了解Vue双向绑定的原理。

handler函数:

       参数1:新值

       参数2:旧值

通过vue.$watch()方式监听时需要手动释放。

const unWatch = app.$watch('text', (newVal, oldVal) => {
  console.log(`${newVal} : ${oldVal}`);
})
 
unWatch();