遇到一个问题,就是路由携带的参数变了,如何可以刷新页面,由此引出了可以监听路由的变化
1.组件内监听路由的方式:
watch: {
'$route.path': function (newVal, oldVal) {
if (newVal === '/login') {
console.log('欢迎进入登录页面');
}
if (newVal === '/register') {
console.log('欢迎进入注册页面');
}
}
}
watch:{
'$route' (to,from) {
console.log(to, from)
// to , from 分别表示从哪跳转到哪,都是一个对象
// to.path ( 表示的是要跳转到的路由的地址 eg: /home );
if (to.query.id !== from.query.id) {
this.id = this.$route.query.id
this.name = this.$route.query.name
}
}
},
// 监听新老路由变化信息
watch:{
$route:{
handler(newVal, oldval){
console.log(newVal)
console.log(oldval)
},
// 深度监听
deep: true
}
}
2.监听路由变化执行相应的方法:
watch: {
"$route": "getDetailData"