#javascript #reactjs
#javascript #reactjs
Вопрос:
Я хочу знать, какие события вызывают повторную визуализацию компонента React.
Я нигде не смог найти полный список, было бы здорово, если бы кто-нибудь написал список событий, которые вызывают повторную визуализацию компонента React.
Ответ №1:
Я всегда нахожу полезным следующий справочный веб-сайт.
Фильтруйте по событиям жизненного цикла, и вы сможете увидеть места, где setState запускает повторный рендеринг.
__
Обновление: теперь вам нужно фильтровать по «разное»
Комментарии:
1. Как насчет
props
того, чтобы ни изменить, ниstate
изменить компонент, но родительский компонент повторно рендерится, не приводит ли это к повторному рендерингу дочернего компонента? Можно ли это предотвратитьshouldComponentUpdate
?2. Если родительский компонент повторно визуализируется, то все его дочерние элементы повторно визуализируются. Вы можете использовать
shouldComponentUpdate
в качестве механизма для предотвращения рендеринга любого компонента (ну, кроме функциональных компонентов без состояния, поскольку у них нет перехватов жизненного цикла).
Ответ №2:
Компонент React повторно визуализируется при setState()
вызове или при props
изменении. Вы также можете принудительно выполнить повторную визуализацию с помощью forceUpdate()
https://reactjs.org/docs/react-component.html#forceupdate
По умолчанию, при изменении состояния или реквизита вашего компонента, ваш компонент будет повторно визуализироваться. Однако, если они изменяются неявно (например: данные глубоко внутри объекта изменяются без изменения самого объекта) или если ваш метод render() зависит от каких-то других данных, вы можете сообщить React, что ему необходимо повторно запустить render(), вызвав forceUpdate() .