Пришло время узнать, что из React v15.3.0 у нас есть новый базовый класс с именем PureComponent для расширения с помощью PureRenderMixin. Я понимаю, что под капотом это использует неглубокое сравнение реквизитов внутри shouldComponentUpdate
.
Теперь у нас есть 3 способа определить компонент React:
- Функциональный компонент без состояния, который не расширяет класс
- Компонент, расширяющий
PureComponent
класс - Нормальный компонент, расширяющий
Component
класс
Некоторое время назад мы использовали для вызова компонентов без состояния как Pure Components, или даже Dumb Components. Похоже, что все определение слова "чистый" теперь изменилось в "Реактите".
Хотя я понимаю основные различия между этими тремя, я все еще не уверен, что , когда выбрать, что. Также каковы последствия воздействия и компромиссы каждого из них?
Обновление
Это вопрос, который я ожидаю, чтобы получить разъяснение:
- Должен ли я выбрать, чтобы определить простые компоненты как функциональные (для простоты) или расширить класс
PureComponent
(для достижения максимальной производительности)? - Является ли повышение производительности, что я получаю реальный компромисс для простота, которую я потерял?
- Должен ли я когда-либо использовать обычный класс
Component
, когда я всегда могу использоватьPureComponent
для повышения производительности?