组件缓存有实现方法吗?类似于vue的<keepAlive>

#1

场景:
路由a中计数器从1开始点击加到5.这时候点击按钮跳转到路由b。再浏览器返回路由a,此时计数器已初始化显示1。
需求:
缓存整个路由组件,跳转到其他路由后再返回去时数据不重新加载,组件内生命周期钩子不执行。

如果你用过vue,其实就想要一个类似于vue-router的组件。请问react中有这样的插件或者有实现方法吗?

#2

使用mobx做状态管理,数据不要在组件的construct中初始化

#3

这个只是数据的缓存,我指的整个组件的状态,包括数据缓存、页面交互、页面位置等。就类似

#4

问题解决了吗?我遇到同样的问题,主要场景是列表页和详情页的进入和回退。

#5

一时间想不起 react-router 有这方面的官方支持,可能有支持这些行为的第三方HOC,要花时间找看看了。我自己处理这个问题是将页面状态交给 redux 管理,然后维护一个容器级的状态栈,每次 dispatch 就入栈当前状态对象,需要回退时就从栈中获取状态对象,然后再次 dispatch,说起来绕实现起来还好,redux 还是很给力的

#6

不雅的方案react-router 里面,你一个组件,match两条路由就好了,不要销毁就行,要隐藏麽,css方案;

论坛相似问题:请问 react有什么方案缓存组件

#7

可以看下这个组件 react-keep-alive