Итак, мы планируем использовать PHP-сервер с сервером Front React + Redux. Мы разрабатываем очень большое приложение, множество таблиц по всему приложению. Поскольку это будет одностраничное приложение, все данные содержатся внутри объекта хранилища.Работа с консистенцией данных в очень большом хранилище в React + Redux SPA SaaS
Итак, давайте посмотрим, насколько я настроен правильно. Мое состояние начнет почти пусто, когда я войду в приложение. Когда я посещаю страницы, мое состояние начнет заполняться. Пример: Я посещаю «фотографии» из приложения, то я закончу нагрузку некоторые из фотографий из моей БД и положить его в моем магазине:
state{
...
photos: [1: {...}, 3: {...}, 17:{...}]
...
}
И потом, если мне нужно фото с ид = 17, мне больше не нужно запрашивать его, я могу использовать его в своем магазине, верно? Или, может быть, я сначала беру его из магазина и попрошу асинхронно проверить, были ли изменения к нему.
Поскольку я посещаю все больше и больше страниц, у меня будет огромный объект с большим количеством элементов из разных таблиц, например. фотографии, видео, user_configurations, друзей и т. д. Как я должен работать с согласованностью данных? Если мне нужен объект, который я уже набрал 10 минут назад, должен ли я запросить его еще раз? «Здорово» иметь такой большой объект магазина?
Я планирую использовать normalizr & повторно выбрать, чтобы манипулировать моей датой внутри react-redux.
Любые мысли об этом? Хотелось бы услышать, как вы думаете, что это хороший способ справиться с ситуацией.
Заранее благодарен!
Фабиу
Ого! Спасибо, Марк! Спасибо за материал, это выглядит именно то, что мне нужно прямо сейчас. И спасибо также за предложение использовать Radux-ORM, заменит ли он normalizr и полностью отменит выбор? Я не согласен ни с одним, я окончательно взглянул на него. –
Между ними есть несколько совпадений. Redux-ORM может использовать Reselect для генерации некоторых селекторов, и я использую Redux-ORM внутри некоторых селекторов Reselect. Я фактически использую Redux-ORM для синтаксического анализа и нормализации входящих данных, которые _does_ заменяют то, что вы используете для Normalizr, хотя есть пара предостережений (за мой второй пост в блоге). – markerikson
Предполагая, что это ответили на вопрос, не принимая ответ? :) – markerikson