代码之家  ›  专栏  ›  技术社区  ›  Avraam Mavridis

反应路由器避免卸载

  •  0
  • Avraam Mavridis  · 技术社区  · 7 年前

    我有3个路由使用相同的组件,并且基于路由显示稍有不同的内容。问题是,在每一个路由上更改,整个组件都会从头开始装载/卸载,从而导致性能问题。避免卸载但仍使用相同组件并拥有这3条路由的最佳方法是什么?

    <Route path="/Products" exact render={Products} />
    <Route path="/Products/shoes" exact component={Products} />
    <Route path="/Products/books" exact component={Products} />
    

    反应路由器版本4。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Shubham Khatri    7 年前

    您可以基于路由条件路径匹配来呈现路由,在这种情况下,它不会在每次路由更改时重新装载

    <Route path="/Products(/shoes|/books)?" exact render={Products} />
    
        2
  •  0
  •   simbathesailor    7 年前

    当匹配新路由时,并行路由将卸载。您需要将“/products/shoes”和“/products/books”的组件包装在产品组件中。在react router v4中,需要嵌套与组件类似的路由。因此,您需要在子组件中包含“/products”路由和其他2的产品组件。

    坦率地说,我只是给出了一个概述,阅读React Router 4文档以获得更好的理解。