vue-router keep-alive 的一些问题

问题1:某个组件 inactive 的时候里面的数据忽然变成了 null,但是 active 之后数据又恢复了

list 中每个对象中都包含一个叫 content 的对象

这个组件 active 的时候,这个对象是有数据的

clipboard.png

但是当这个组件 inactive 的时候,这个对象变成了 null

clipboard.png

现在我的解决方法时 inactive 的时候隐藏这个组件,这样才不会报错,但是感觉这种方式不是很好=。=

问题2:组件无法缓存

列表页跳转到详情页,列表页无法缓存,点击后退列表页还是重载了=。=但是列表页明明已经设置了 keep-alive

<keep-alive>
    <router-view></router-view>
</keep-alive>

这个暂时还没有找到解决方法。

阅读 3.7k
1 个回答

问题2已解决,加个 key 即可
<router-view :key="$route.fullPath"></router-view>
问题1探索中。。。

问题2也解决了。我在 UserInfo 中通过路由获取 username,之前是放在 computed 中,现在是直接在 created 中赋值,数据缓存时就不会消失了。

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