目前 react 流行的路由缓存策略是什么 ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wly19960911
V2EX    问与答

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

  •  < href="Javascript:" Onclick="downVoteTopic(561576);" class="vote">
  •   wly19960911 2019-05-06 19:57:07 +08:00 4993 次点击
    这是一个创建于 2350 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    关于 display none 我有个问题,根据 url 切换到当前页面的话,难道得自己去读 url 然后做一套解析,而不是用 react router 直接调用,还是说 route 切换的时候阻止了 unmount ?因为我看见有人的解决方案是通过阻止 unmount 来处理这个问题。但是总感觉事情复杂了,也没有人能请教下主流的方案,所以才来问问
    ookkxw
        5
    ookkxw  
       2019-05-07 11:51:08 +08:00 via iPhone   1
    @wly19960911 react route 有这个 API 可以在不使用 组件的情况下解析 返回结果是个 match 或者 null
    wly19960911
        6
    wly19960911  
    OP
       2019-05-07 12:50:5 +08:00 via Android
    @ookkxw 那我再研究研究,谢谢指教。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     892 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 20:21 PVG 04:21 LAX 13:21 JFK 16:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86