现在两个路由对应同一个组件
/a /b 两个路由都对应componentA组件,
在切换的时候,组件不会重载,created等事件不会触发,如何让每一次切换都触发组件重载
现在两个路由对应同一个组件
/a /b 两个路由都对应componentA组件,
在切换的时候,组件不会重载,created等事件不会触发,如何让每一次切换都触发组件重载
写在共用组件文件里
data(){
...
}
mounted(){...},
watch: {
$route: {
handler: function (val, oldVal) {
this.worksheet_type = this.$route.params.type;
},
deep: true
}
},
在共用组件上加上key<div :key="$route.path">
<router-view :key="key"></router-view>
computed: {
key() {
// 或者 :key="$route.path" 只要保证key唯一就可以了
return this.$route.name !== undefined? this.$route.name + +new Date(): this.$route + +new Date()
}
}
使用watch监听$route
例子:
获取数据方法为getDatawatch:{$route:'getData'}
这样每次参数变化或者子路由变化就会调用getData方法
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
谢邀,不过下次建议多把代码发出来!我的做法是下面这样
vue的路由有如下对象

fullPath:路径(包括参数)
path:路由路径
query:参数(id:1)
params:参数(id=1)