AlinaCat
@AlinaCat
Кот

Вопросы от новичка по state?

Читаю туториалы, с props все понятно, а вот зачем нужен state не пойму до конца

1) в чем его смысл, если в одном предложении написать? Т.е. понятно, что держать актуальные данные, но тогда не вижу разницы с обычным state объектом в нативном js, который можно создать для таких же целей самому.
2) у компонента всегда есть объект state? В одном месте написано, что всегда, в другом - есть stateless компоненты.
  • Вопрос задан
  • 113 просмотров
Решения вопроса 3
tsepen
@tsepen
Frontend developer
Компонент заново перерисовывается при изменении state (мутирует), это не просто объект с данными. State есть не всегда, данные могут быть получены от родителя через props или компонент может вообще не принимать и не хранить данные
Ответ написан
KorniloFF
@KorniloFF
Работаю по font-end / JS
AlinaCat , это разные подходы написания компонентов.
Если писать в современном ООП - state будет всегда. Он хранит в себе текущее состояние отслеживаемых параметров.
В stateless стиле пишется уже с использованием функций-конструкторов.
Ответ написан
Комментировать
vicodin
@vicodin
Имею некоторый опыт
1) В одном предложении, стейт, как и в переводе - это внутреннее состояние компонента. Например, у вас есть компонент лампочка. Вы можете в его состоянии хранить свойство включена/выключена.
Да, вы можете это состояние передавать лампочке как prop, но это означает, что вы будете хранить состояние где-то выше(если вы хотите, чтобы включение/выключение можно было совершить не правя код, через интерфейс).
В различных ситуациях может понадобиться оба подхода.

2) Стейт есть не всегда. Он и не всегда нужен. Когда он не нужен компонент можно написать просто как функцию. Когда он нужен, можно использовать хуки, и можно(но уже во многих случаях необязательно/нежелательно) использовать классы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы