【问题标题】:Does Route Component in React reload the component if we visit the same path?如果我们访问相同的路径,React 中的 Route 组件会重新加载组件吗?
【发布时间】:2020-03-21 12:08:13
【问题描述】:
<Switch>
  <Route exact path="/" component={Home}></Route>
  <Route exact path="/signup" component={Signup}></Route>
  <Route exact path="/signin" component={Signin}></Route>
  <Route exact path="/user/:userID" component={Profile}></Route>  <===(Example)
  <Route exact path="/allusers" component={Users}></Route>
</Switch>

如果我的应用程序遇到相同的路径会发生什么,它会重新安装组件还是什么都不会发生。例如如果我的应用程序命中包含/user/:userID 的路由会发生什么(我已在上面的代码中标记了该路由)。它会重新挂载配置文件组件还是什么都不会发生,因为用户已经在该组件上?

我已经做了一些测试,看起来如果我们走相同的路线然后什么都不会发生。不确定在这种情况下应该发生什么,例如在这种情况下 Route 组件的默认行为是什么。任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: javascript reactjs web-applications react-router react-router-v4


    【解决方案1】:

    我做了一些进一步的调查,发现如果我们再次访问相同的路线,那么组件肯定会重新安装,但第一次重新安装和重复重新安装之间存在差异。

    在第一次重新挂载中,一旦调用了该组件的 render() 方法,之后另一个生命周期方法(在我的组件中)即 ComponentDidMount 被调用,这是默认的生命周期行为。但是在进一步重复的重新挂载中,只调用了 render() 方法,并且没有调用 ComponentDidMount 生命周期方法,尽管它存在于组件中。我相信这是因为组件已经安装了。我不完全确定此事件背后的基本原理,所以如果我错了,请随时纠正我。谢谢!

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2018-10-16
      • 2021-03-19
      • 2023-04-11
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多