具体要求是这样:用react做的webapp。首页有横向导航栏,点击切换路由参数,根据路由参数重新拉取数据。列表页,点击能够进入详情页。
因为在列表页已经实现了下拉刷新功能,我希望除了第一次进入每个页面通过Ajax拉取数据,后面导航之前切换,返回都不重新拉取除非手动下拉刷新。
目前想到的只是在全局为每个路由页面维护一份数据,或者根据一个变量判定是否需要重新拉取。想知道在实际开发中有这样的场景吗,是怎么解决的。
具体要求是这样:用react做的webapp。首页有横向导航栏,点击切换路由参数,根据路由参数重新拉取数据。列表页,点击能够进入详情页。
因为在列表页已经实现了下拉刷新功能,我希望除了第一次进入每个页面通过Ajax拉取数据,后面导航之前切换,返回都不重新拉取除非手动下拉刷新。
目前想到的只是在全局为每个路由页面维护一份数据,或者根据一个变量判定是否需要重新拉取。想知道在实际开发中有这样的场景吗,是怎么解决的。
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
4 回答1.8k 阅读
react-router没有类似vue-router中的keep-alive功能,每次切换都会把之前的组件unmount掉。
自己有两个思路。
一. 数据不交由各自模块的初始化中处理(不放在componentDidMount里),交由router和各自模块的自定义触发行为处理。页面数据都放到redux里,切换route时,只有在模块对应的数据未初始化的时候,才触发对应模块的数据初始化。
二. 不依赖react-router,自己实现各自模块的加载,利用display切换当前显示的模块。