vue router使用 keep-alive,页面不刷新

为了提升应用的体验,在项目中使用了keep-alive去保存页面的状态,但是遇到一个问题,等我底部tab栏对应的组件使用keep-alive是,我从登录页面登录成功后跳转到首页,但是首页并没有刷新,tab栏对应的三个页面的状态都是之前保存下来的,但是我从登录页面到首页是使用:

this.$router.push({path: '/index'})

正常来说是应该进入到一个全新的index页面啊,但是实际上tab栏对应的三个页面都是未登录之前的页面,并没有刷新,有大神知道是什么原因吗?

底部tab栏代码:
clipboard.png

底部tab栏对应的路由配置:
clipboard.png

底部tab栏的样式:
clipboard.png

App.vue的代码
clipboard.png

阅读 6.9k
2 个回答

你是在created中拿的数据吧。
keep-alive本来就不会更新,因为是复用呀,跳回之前开过的路由就直接挂载上了,不会重新创建。
keep-alive更新需要用这个生命周期activated

使用了keep-alive数据是不会自动刷新的了,数据缓存起来复用的呢,所以你要做个判断什么时候要刷新,返回不刷新,你可以在activated这个钩子里判断是否返回来的,是不刷新,不是就刷新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题