目前 react 流行的路由缓存策略是什么 ?

2019-05-06 19:57:07 +08:00
 wly19960911

目前学习 react 的时候突然发现路由缓存这个需求 react router 并不能给出一个很好的解决方案,而且 react 的文档及其分散和版本差异...... 我想知道现在的流行解决方案是什么。如果可以的话,有 dalao 能给个 react 的讨论群吗

4588 次点击
所在节点    问与答
6 条回复
ookkxw
2019-05-07 09:33:45 +08:00
啥叫 路由缓存?类似 vue 的 keep alive ?这个的话没有办法,react 的机制问题,非要做的话可以 display none 再配合路由管理,
wly19960911
2019-05-07 09:50:00 +08:00
@ookkxw #1 看来是措词错误,难怪这么久没人回答。

display none 的话,某些路由下还可能异常吧?

如果按照你所说的,那我可能需要针对 /user/( user 的 list ) , /user/1 这两个页面全部归一个 component 管理?
ookkxw
2019-05-07 10:21:21 +08:00
@wly19960911 看你怎么设计了,我现在用的是 display none 的方案,还有一个思路是吧所有子组件的 state 通过 context 缓存 ,展示的时候再付值,不过这个改造工程比较大
wly19960911
2019-05-07 10:36:52 +08:00
@ookkxw #3 context,指的是父级的 component 的 state 吗,这个的确也可以,我也考虑过这个方案。

但是要完全还原现场有些瑕疵,其实也就是滚动条什么的比较麻烦,当然考虑不需要完全还原下这个是最好的解决方案了。

关于 display none 我有个问题,根据 url 切换到当前页面的话,难道得自己去读 url 然后做一套解析,而不是用 react router 直接调用,还是说 route 切换的时候阻止了 unmount ?因为我看见有人的解决方案是通过阻止 unmount 来处理这个问题。但是总感觉事情复杂了,也没有人能请教下主流的方案,所以才来问问
ookkxw
2019-05-07 11:51:08 +08:00
@wly19960911 react route 有这个 API 可以在不使用 组件的情况下解析 返回结果是个 match 或者 null
wly19960911
2019-05-07 12:50:15 +08:00
@ookkxw 那我再研究研究,谢谢指教。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/561576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX