首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
宝塔
V2EX  ›  问与答

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

  •  
  •   wly19960911 · 199 天前 · 1265 次点击
    这是一个创建于 199 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 回复  |  直到 2019-05-07 12:50:15 +08:00
        1
    ookkxw   199 天前 via iPhone
    啥叫 路由缓存?类似 vue 的 keep alive ?这个的话没有办法,react 的机制问题,非要做的话可以 display none 再配合路由管理,
        2
    wly19960911   199 天前
    @ookkxw #1 看来是措词错误,难怪这么久没人回答。

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

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

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

    关于 display none 我有个问题,根据 url 切换到当前页面的话,难道得自己去读 url 然后做一套解析,而不是用 react router 直接调用,还是说 route 切换的时候阻止了 unmount ?因为我看见有人的解决方案是通过阻止 unmount 来处理这个问题。但是总感觉事情复杂了,也没有人能请教下主流的方案,所以才来问问
        5
    ookkxw   199 天前 via iPhone   ♥ 1
    @wly19960911 react route 有这个 API 可以在不使用 组件的情况下解析 返回结果是个 match 或者 null
        6
    wly19960911   199 天前 via Android
    @ookkxw 那我再研究研究,谢谢指教。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2900 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    ♥ Do have faith in what you're doing.