@sapl

Redux-Store Best practice: как лучше в store разделять данные от состояния UI?

Есть ли какие-то Best Practices как лучше организовывать Store в redux проектах?
Как именовать и как хранить в дереве флаги касаемо UI и сами данные?

Конкретно как разделять в сторе данные бизнеслогики от состояния интерфейса:
- показать/скрыть тот или иной компонент
- поменять вид компонента
- показать скрыть диалог,
- экраны в связке с роутингом
- и т.д.

как это хранить в сторе?
  • Вопрос задан
  • 1041 просмотр
Пригласить эксперта
Ответы на вопрос 3
alvvi
@alvvi
export default apathy;
Если это глобальные состояния, которые влияют на несколько компонентов сразу, можете хранить их например так
store: {
  ui: {
    sidebar:  true   
  }
  entitites: {
     //...
  }
}

если же это состояние компонента, типа

- показать/скрыть тот или иной компонент
- поменять вид компонента
- показать скрыть диалог,

лучше использовать нативный реактовский стейт.
А так в целом, структура Store зависит от приложения, строгих правил кроме рекомендаций типа "сущности лучше хранить в нормализованном виде", я лично не встречал.
Ответ написан
Комментировать
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Состояние интерфейса обычно хранится в state компонента.
- экраны в связке с роутингом (тут и состояние хранить обычно не нужно дополнительно, так как оно уже хранится в роуте (объект location))
Ответ написан
@sapl Автор вопроса
Спасибо, за ответы Максим и Илья Ростопка
Думаю я плохо сам вопрос сформулировал.
Когда использовать state и когда store - более менее понятно.
Вопрос скорее по именованию полей и структуре самого дерева (даже если это все хранится в state - вопрос также актуален).

У меня проблема такая: сами компоненты при рендеринге изобилируют
во такими конструкциями:
{entityA!=null ? <EntityA name={entitiA.name}/>:null}

<Input error={error!=null?error.message:""}

{isDialogAOpen?<Dialog/>:null}

Это все приходит в props (redux) или как-то хранится в state.
Порядка не получается, разобраться потом проблематично.
Мне кажется не хватает каких-то гайдлайнов по именованию как props значений так и структур store/state. Вот я и хотел найти ссылочки на подобное
Ответ написан
Ваш ответ на вопрос

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

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