怎么监听路由的改变的两种方式(watch,路由守卫)
有时候在项目中要监听路由的变化,如路由传值等 。
路由守卫(监听路由)
//路由传递参数
this.$router.push({
path: "/syss/contract",
query: {
objectId: record.objectId,
textContent: escape(record.context) //参数加密
}
});
// 组件路由守卫 注:主要注意里面的this指向
//vm代表组件中的this
beforeRouteEnter(to, from, next) {
next(vm => {
// 消息通知跳转过来的数据
if (from.path == '/message') {
vm.$nextTick(() => {
if (to.query.objectId) {
vm.getContractDetail(to.query.objectId)
vm.messageText = unescape(to.query.textContent) //获取传来的参数值解密(unescape是加密解密的)
vm.modalMessage = true;
vm.timeClear = 10;
vm.timeInter();
}
vm.$router.push({ query: {} });//销毁url里参数,(在路由中获取到传过来的参数后,立马销毁参数)
})
}
})
},
warth(监听路由)
warth监听路由的参数按常规的 。