2017-10-04 125 views
0

我最近开始建立与vuejs的应用程序,并有一个小问题,我无法回避:缓存视图

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

谢谢。

+1

很难说什么工作,因为你不同意你的代码,但我想看看[保活](https://vuejs.org/v2/api/#keep-alive)组件和vue-router的[Scroll Behavior](https://router.vuejs.org/en/advanced/scroll-behavior.html)选项 – thanksd

回答

1

本质上,问题在于您的组件在内部存储状态。浏览清除状态。有两种方法可以处理。

1)(quickfix)而不是重定向使用另一种显示项目细节的方式(模态,或展开想到)。这种方式组件的状态不会丢失

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

+0

所以我跑了第一个选项,它似乎工作,但是非常混乱,我附加了简单的消息总线实现,但无论如何最终存储在应用程序的任何地方的数据,并不得不实施人工反应。现在我是在vuex文档之后,它似乎解决了我所有的问题(除了滚动位置,但我已经用其他方式解决了这个问题),正是我所需要的,而且根本不是那么可怕:)谢谢 –