Компонент Route в React перезагружает компонент, если мы посещаем тот же путь? - PullRequest
0 голосов
/ 21 марта 2020
<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 по умолчанию в таком случае. Любая помощь будет высоко ценится. Спасибо!

1 Ответ

0 голосов
/ 21 марта 2020

Я провел дополнительное исследование и выяснил, что если мы снова попадем на тот же маршрут, то компонент определенно перемонтируется, но есть разница между первым перемонтированием и повторным перемонтированием.

В первом перемонтировании после вызова метода render () этого компонента после этого был вызван другой метод жизненного цикла (который был в моем компоненте), а именно: ComponentDidMount , который является жизненным циклом по умолчанию. поведение. Но при дальнейшем повторном перемонтировании был вызван только метод render (), а метод жизненного цикла ComponentDidMount , несмотря на то, что он присутствовал в компоненте, не был вызван. Я считаю, что это произошло, потому что компонент уже был смонтирован. Я не совсем уверен в обосновании этого события, поэтому, пожалуйста, поправьте меня, если я ошибаюсь. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...