реагировать с редукционной структурой папок dillema - PullRequest
0 голосов
/ 24 июня 2018

У меня есть приложение React-Redux, в котором у меня есть несколько вкладок, и я храню свой код в структуре папок на вкладке. Каждая папка содержит файл действий, служебный файл, файл констант и файл редуктора.

Когда я выбираю данные с сервера, я выбираю их как один большой вложенный объект, ключами верхнего уровня которого являются sectionA, sectionB, sectionC и т. Д.

Каждая вкладка может использовать данные из нескольких разделов, например, вкладка 1 может использовать раздел A и раздел B, вкладка 2 может использовать раздел B и раздел C и т. Д.

Это создает проблему в том, как я разделяю данные на редукторы. Если ключи верхнего уровня в хранилище приставки будут «tab1» и «tab2», и я хотел бы обновить данные в секции B, то мне придется сделать это в двух разных редукторах. С другой стороны, если бы ключами верхнего уровня были бы «sectionA», «sectionB» и т. Д., То моя структура папок неверна. Есть ли способ решить эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 24 июня 2018

Звучит так, будто вы очень много думаете о внешнем разработчике и классифицируете свое состояние в соответствии с его отношением к пользовательскому интерфейсу.

Возможно, вы захотите подумать о том, как вы нормализуете свою форму состояния: https://redux.js.org/recipes/structuring-reducers/normalizing-state-shape

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

Попробуйте больше думать о вашей структуре редукса с точки зрения того, что представляют собой данные, а не о том, где вы хотите разместить их на экране.

библиотека нормализатора - это следующий уровень для этого https://github.com/paularmstrong/normalizr

Я все еще спорю, думаю ли я, что это слишком далеко. Мое приложение начинает превращаться из MVVC в MVCMVCCVMMV ... (вы понимаете, какая-то эпическая римская цифра).

Какой объем данных я хочу хранить в модели pubsub локально, по сравнению с тем, чтобы всегда использовать мой сервер API для этого?

Как долго пользователь оставляет страницу открытой, заполняя хранилище избыточных данных новыми данными, пока не возникнет проблема с памятью?

Сборка мусора в приставке - это целый дополнительный разговор, и его стоит прочитать: https://github.com/reduxjs/redux/issues/1824

Старый помощник Дан Абрамов высказывает несколько полезных мыслей в этой теме.

Я понимаю, что ни один из этих ответов сам по себе не является ответом, но похоже, что в редуксе в любом случае больше «сценариев использования», чем ответов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...