Где располагать стейт?(part 2)
#Фронтенд
При создании стейта важно помнить, что его изменение приведет к перерендеру всех дочерних элементов вашего компонента(memo пока не учитываем, но часто это правка последствий, а не причин). Все ок, если у вас компонент простой, но если ваш компонент имеет много дочерних(а эти дочерние тоже могут быть не очень простыми), то стоит сильно задуматься.
Для себя я вывел простое правило. Располагай стейт максимально близко к месту использования. Компонент со стейтом следует делать максимально компактным, в идеале стейт, необходимая логика и логика его отображения. Если ваш стейт потребовался другому компоненту, то тут стоит задуматься о вынесении этого стейта на уровень выше, но не раньше. Старайтесь избегать локального стейта, который прикидывается в кучу компонентов, тк в этой ситуации он уже не выглядит локальным, подумайте о вынесении его в полноценный стейт менеджер(redux и др) или контекст(как правильно готовить контексты обсудим отдельно).
Всем продуктивной недели!
Post #8
1.36K
- 👍 10