如果我们访问相同的路径,React 中的 Route Component 是否会重新加载组件?
Does Route Component in React reload the component if we visit the same path?
<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 组件的默认行为是什么。任何帮助将不胜感激。谢谢!
我做了一些进一步的调查,发现如果我们再次点击相同的路线,那么组件肯定会重新安装,但第一次重新安装和重复重新安装之间存在差异。
在第一次重新安装时,一旦调用了该组件的 render() 方法,之后调用了另一个生命周期方法(在我的组件中),即 ComponentDidMount 被调用了默认的生命周期行为。但是在进一步重复的重新挂载中,只有 render() 方法被调用并且 ComponentDidMount 生命周期方法尽管存在于组件中但没有被调用。我相信这是因为组件已经安装。我不完全确定此事件背后的基本原理,所以如果我错了,请随时纠正我。谢谢!
<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 组件的默认行为是什么。任何帮助将不胜感激。谢谢!
我做了一些进一步的调查,发现如果我们再次点击相同的路线,那么组件肯定会重新安装,但第一次重新安装和重复重新安装之间存在差异。
在第一次重新安装时,一旦调用了该组件的 render() 方法,之后调用了另一个生命周期方法(在我的组件中),即 ComponentDidMount 被调用了默认的生命周期行为。但是在进一步重复的重新挂载中,只有 render() 方法被调用并且 ComponentDidMount 生命周期方法尽管存在于组件中但没有被调用。我相信这是因为组件已经安装。我不完全确定此事件背后的基本原理,所以如果我错了,请随时纠正我。谢谢!