this.$router.push 解决通过 vue-router 打开 tab 页,下次进入还是上次history缓存的界面状态的问题
vue 路由 缓存问题
·
this.$router.push 解决通过 vue-router 打开 tab 页,下次进入还是上次history缓存的界面状态的问题
一、问题描述:
1. 跳转模式:界面A–>界面B(界面A中通过打开新tab页的方式打开界面B。)
this.$router.push({
name:'组件B名称',
params: {参数...}
})
2.关闭界面B,回到界面A
3.再次从A到B时,打开的界面B仍然是上次的状态,哪怕传递的参数不一样
。
另:router声明如下
{
path: 'demo/index/b',
name: 'B',
component: _import('demo/index/b'),
meta: {
requiresAuth: true,
keepAlive: false, // 不需要被缓存
title: '界面B'
}
}
原因:详见vue-router官网
三、解决方式:在界面B离开时,销毁组件。代码如下:
导航离开该组件的对应路由时调用 [可以访问组件实例
this
],该方法与created、mounted平级
。
created() {
...
...
},
mounted() {
...
...
},
beforeRouteLeave (to, from, next) {
// 销毁组件,避免通过vue-router再次进入时,仍是上次的history缓存的状态
this.$destroy(true)
next()
}
更多推荐
已为社区贡献1条内容
所有评论(0)