Мое настоящее понимание заключается в том, что компонент монтируется на DOM, когда это необходимо для просмотра или когда маршрут требует этого компонента. Он также будет предоставлять свои дочерние компоненты. Означает ли это, что компонент будет размонтирован при посещении маршрута, который не имеет этого компонента, или всякий раз, когда вы посещаете какую-либо страницу, на которой не отображается элемент, создаваемый этим компонентом? Таким образом, компонент необходимо будет перемонтировать каждый раз, когда он появляется на DOM (вне изменений prop и state), правильно?Когда компонент размонтируется?
ответ
Я бы сказал, что компонентный монтируется на DOM только в том случае, если он используется через другой компонент, включая компонент Router. Не думайте о маршрутизаторах как о специальных элементах/вещах в React. Они похожи на другие компоненты, и они выполняют сопоставление между текущим URL-адресом и шаблонами, которые им необходимо решить, какой компонент должен быть обработан с помощью функции render()
Router. Всякий раз, когда происходит изменение URL-адреса, маршрутизатор выбирает новый компонент для рендеринга и выполняет рендеринг через функцию render()
.
Если компонент нужен, его следует установить на DOM.
Если нет, но устанавливайте его до, если его следует размонтировать.
В VirtualDOM Примирения если компонент существует, но уже не будет, компонент считается демонтирован и дает возможность очистить (через componentWillUnmount
).
Обратное верно, при сверке, если компонент не существует, но теперь делает компонент считается готовым для установки, и дать шанс приготовительные себя (constructor
/componentWillMount
)
При срыве дерева старые узлы DOM уничтожаются. Компонент экземпляров получает компонентWillUnmount(). При создании нового дерева в DOM вносятся новых узлов DOM. Экземпляры компонентов получают componentWillMount(), а затем componentDidMount(). Любое состояние , связанное со старым деревом, теряется.
https://facebook.github.io/react/docs/reconciliation.html
Эта конкретная страница стоит прочитать, если вы еще не сделали. Это также объясняет, почему key
очень важен для повторяющихся элементов.
Я уже давно искал эту ссылку/концепцию, но не мог любовь Бога формулирует запрос Google. Спасибо. – lakesare
Я точно знаю? По какой-то причине мне всегда трудно найти материал в документах. Не их вина, я просто опустил ее на новые термины и понятия, не представленные в других JS-инфраструктурах – Chris
- 1. ReacJS с Баобабом, как освободить курсор после того, как компонент размонтируется
- 2. Реагировать Native: Анимация, когда компонент размонтирует
- 3. отключить один компонент, когда другой компонент вращается
- 4. Вредоносная активность, связанная с вызовом эстафеты Icecast, когда какой-либо источник монтируется или размонтируется?
- 5. Каждый раз, когда компонент открыт
- 6. Событие, когда компонент становится видимым
- 7. Когда введенный компонент фактически инициализирован?
- 8. Когда называется управляемый компонент bean?
- 9. Зачем/когда вызывается компонент ComponentListener.componentShown()?
- 10. Когда компонент Swing является «отображаемым»?
- 11. React re-render компонент, когда другой компонент изменен
- 12. Скрыть компонент, когда показан другой идентичный компонент с React
- 13. Как пересборку компонент, когда this.props.children изменилась
- 14. Angular2 компонент не делает, когда данные изменения
- 15. реагировать CSS анимации, когда компонент монтирует
- 16. Обновление AngularJS компонент, когда привязки изменить
- 17. Внутренний компонент не найден, когда retargetMethodExpressions
- 18. java event, когда компонент становится видимым
- 19. С чего начать, когда вы строите компонент?
- 20. Когда компонент Angular 2 полностью загружен
- 21. Когда мы должны использовать компонент Vue.js
- 22. Компонент не инстанцировании когда вложенные в Angular2
- 23. Определение того, когда Пользователь загрузил компонент
- 24. Получить уведомление, когда компонент недействителен или переиздается
- 25. Событие, когда компонент добавлен в дом
- 26. Как применить эффект Primefaces, когда компонент оказывается
- 27. Как визуализировать компонент, когда данные готовы?
- 28. Что-то делать, когда компонент Ember создается?
- 29. Определите, когда компонент Flash не отображается
- 30. require_once function.require, когда я открываю компонент
Я имел в виду, что у маршрутизатора есть собственная функция «render()» и использует соответствующий компонент там, в зависимости от того, какие шаблоны соответствуют текущему URL-адресу. что-то вроде этой реализации https://github.com/ReactTraining/react-router/blob/master/modules/Router.js#L126 –