Список событий, которые вызывают повторную визуализацию компонента React

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я хочу знать, какие события вызывают повторную визуализацию компонента React.

Я нигде не смог найти полный список, было бы здорово, если бы кто-нибудь написал список событий, которые вызывают повторную визуализацию компонента React.

Ответ №1:

Я всегда нахожу полезным следующий справочный веб-сайт.

http://reactcheatsheet.com/

Фильтруйте по событиям жизненного цикла, и вы сможете увидеть места, где setState запускает повторный рендеринг.

__

Обновление: теперь вам нужно фильтровать по «разное»

Комментарии:

1. Как насчет props того, чтобы ни изменить, ни state изменить компонент, но родительский компонент повторно рендерится, не приводит ли это к повторному рендерингу дочернего компонента? Можно ли это предотвратить shouldComponentUpdate ?

2. Если родительский компонент повторно визуализируется, то все его дочерние элементы повторно визуализируются. Вы можете использовать shouldComponentUpdate в качестве механизма для предотвращения рендеринга любого компонента (ну, кроме функциональных компонентов без состояния, поскольку у них нет перехватов жизненного цикла).

Ответ №2:

Компонент React повторно визуализируется при setState() вызове или при props изменении. Вы также можете принудительно выполнить повторную визуализацию с помощью forceUpdate()

https://reactjs.org/docs/react-component.html#forceupdate

По умолчанию, при изменении состояния или реквизита вашего компонента, ваш компонент будет повторно визуализироваться. Однако, если они изменяются неявно (например: данные глубоко внутри объекта изменяются без изменения самого объекта) или если ваш метод render() зависит от каких-то других данных, вы можете сообщить React, что ему необходимо повторно запустить render(), вызвав forceUpdate() .