Кажется, что компоненты React всегда запускают свой метод визуализации, когда их родительский компонент отображает, даже если для дочернего компонента не было изменений состояния или реквизита, даже если у дочернего компонента нет состояния или реквизита.Понимание рендеринга React
Это должно быть? Есть ли в этом неэффективность? Переключение дочернего компонента на PureComponent исправляет это, а дочерний компонент не будет повторно. Должен ли я одобрять PureComponents над обычными компонентами?
PureComponents больше ошибка подверженным. Общая рекомендация реагирующих документов заключается в том, чтобы использовать компонент повсюду и использовать PureComponent только при решении реальной проблемы с производительностью и только тогда, когда ее использование действительно повышает производительность. Я не могу найти ссылку на источник прямо сейчас. –
Из документов PureComponent: «Если функция рендеринга() вашего компонента React отображает тот же результат с учетом того же реквизита и состояния, вы можете использовать React.PureComponent для повышения производительности в некоторых случаях». «If» - это то, что мне интересно ... Является ли функция рендеринга работать, когда все одинаково? Или должны быть немые компоненты без состояния или реквизита, которые когда-либо не повторялись при использовании обычных компонентов. Как регулярные компоненты решают, когда делать? –
Любые изменения в родительском компоненте визуализируют дочерние элементы сначала, а затем родительский компонент. Если вы считаете, что состояние дочернего компонента или реквизита не должно влиять на дочерний компонент, используйте функцию shouldComponentUpdate. Чистый компонент полезен, если для компонента не требуется локальное состояние. –