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监听路由跳转和一般对象
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();