Как оформить магазины и акции Redux?

9

ReactJS и Redux предлагают новую парадигму в том, что касается разработки интерфейсов приложений. Оба имеют относительно простые API, и, проведя немного времени, довольно легко понять техническую точку зрения. Но с точки зрения дизайна я не смог найти рекомендации по лучшим методам или ошибкам.

Где я могу найти рекомендации или советы о том, как создать мой глобальный магазин Redux? Сохранение всего состояния приложения в глобальном магазине кажется, что он может быстро стать громоздким. Чего я должен избегать при этом? Как насчет действий, которые изменяют глобальное состояние? Лучше ли делать меньше действий, которые могут делать разные вещи на основе данных о действиях или для многих других конкретных действий?

Теги:
redux
design

1 ответ

8
Лучший ответ

Это отличный вопрос, но это немного сложно ответить, потому что из-за этого это вопрос "это зависит". Но я настоятельно рекомендую глубоко изучить документы redux.js.org. Там много кусочков мудрости о предложениях по формированию API или уменьшению дублирования или общей громоздкости.

Кроме того, я бы добавил несколько общих советов:

  • вам обычно не нужно состояние так часто, как вы думаете. Таким образом, некоторые вещи могут быть достигнуты с большим количеством реквизитов и менее управляемым хранилищем.
  • группировка вещей в более крупные "темы" часто помогает организации данных на уровне магазина; поэтому вы можете предоставить свойства более высокого уровня в хранилище для данного пользователя, auth, и любые другие "темы" будут сгруппированы таким же образом.
  • иногда вы можете создавать несколько более подробные структуры состояний, но компромисс - это предикативность и большая общая простота. Все еще победа над MVC или 2-way craziness.
  • последний, как второстепенный момент, "глобальное" состояние действительно не должно быть настолько глобальным. В одном смысле одно дерево состояний означает, что все состояние является "глобальным" (или, по крайней мере, унифицированным), но если вы не открываете хранилище для каждого отдельного компонента, он не является глобальным. Компоненты с отличной развязкой заставят думать о том, что данные, поступающие с более простой ИМО, на самом деле не обязательно должны быть "глобальными", если это имеет смысл.

Надеюсь, что это поможет!

См. также:

  • 1
    Хороший ответ. В дополнение к этому: у меня есть коллекция ссылок на лучшие практики и рекомендации React / Redux по адресу github.com/markerikson/react-redux-links/blob/master/… , и я считаю, что некоторые из них обсуждают управление состоянием ,
  • 0
    добавлено в ответ
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню