【问题标题】:cache view in vue.jsvue.js 中的缓存视图
【发布时间】:2017-10-04 15:26:45
【问题描述】:

我最近开始使用 vuejs 构建应用程序,并且有一个我无法解决的小问题:

我正在使用 vue-router 在页面之间跳转,假设我有一个巨大的列表,其中可能会使用 ajax 注入其他项目,用户必须滚动,他点击项目,查看详细信息(在新路线中)和当返回列表被重新初始化并且必须再次滚动到他之前的位置。在使用 vue-router 时,我是否有可能保持给定组件的状态(并查看滚动位置),还是必须在主应用程序组件中保留一些缓存实例,然后将其映射到 init 上?

谢谢。

【问题讨论】:

  • 很难说什么会起作用,因为你没有分享你的代码,但我会看看 keep-alive 组件和 vue-router 的 Scroll Behavior 选项

标签: vue.js vuejs2 vue-router


【解决方案1】:

本质上,问题在于您的组件在内部存储状态。导航离开会清除状态。我认为有两种方法可以处理。

1)(快速修复)而不是重定向,而是使用另一种显示项目详细信息的方式(浮现在脑海中的是模态或展开)。这样组件的状态就不会丢失

2) (“正确方式”)存储状态。不可避免地,您迟早会遇到这种情况,处理存储状态的最佳方法是 vuex。 https://vuex.vuejs.org/en/intro.html 最初,这需要一些学习并增加一些复杂性,但这是值得的投资

【讨论】:

  • 所以我通过第一个选项运行,它似乎工作,但很混乱,我附上了简单的消息总线实现,但无论如何最终还是将数据存储在应用程序的某个地方,不得不实现人工反应性。现在我正在关注 vuex 文档,它似乎解决了我所有的问题(滚动位置除外,但我已经通过其他方式解决了),这正是我所需要的,而且一点也不可怕:) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 2012-10-22
相关资源
最近更新 更多