Коллеги, добрый день. Читаю документацию по реакту и все равно не могу вдуплить - что значит statе компонента? С props все ясно - в них мы можем хранить свойства компонента и передавать ему как атрибуты. Потренировалась, все ясно.
А что делает state? Я понимаю, что это состояние компонента, но что оно значит? Для чего оно нужно?
Если есть какой-нибудь блондинистый пример для совсем тупых блондинок, объясните, пожалуйста. Можно на собаках и кошках объяснить, буду рада!
Главное различие:
props - свойства, которые доступны в компонентах после того, как какие-либо значения были переданы в качестве атрибутов. К слову, в качестве свойств могут быть переданы значения из State.
Props не могут быть изменены напрямую. На то они и свойства.
State - состояние. Они могут и должны обновляться. Не только потому, что это данные хоть как то нужно обновлять (например, чтобы изменять данные после взаимодействия пользователя с интерфейсом), но также и из за того, что при обновлении State происходит перерендеринг компонента.
Теперь представим такую ситуацию: из родительского компонента со State отправляем в дочерний значения с атрибутами из State, который тот принимает их в качестве props. Дочерний компонент может быть просто функциональным (без возможности хранить State).
Так, при обновлении State родительского компонента будут изменяться и props дочернего.
Объект state описывает внутреннее состояние компонента, он похож на props за тем исключением, что состояние определяется внутри компонента и доступно только из компонента.
Если props представляет входные данные, которые передаются в компонент извне, то состояние хранит такие объекты, которые создаются в компоненте и полностью зависят от компонента.
Также в отличие от props значения в state можно изменять.