vue官网原话:提醒一下,当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。这就是为什么打开两个或多个详情页的时候,切换标签页数据不更新的原因。
解决办法(可以使用监听器,去监听路由的变化)
watch: {
$route: {
// $route可以用引号,也可以不用引号 监听的对象
handler(to, from) {
this.orderId = this.$route.query.orderId;
this.onLoad();
},
deep: true, // 深度观察监听 设置为 true
immediate: true, // 第一次初始化渲染就可以监听到
},
},
提示:deep深度监听/第一次初始化渲染必须设置为true