В избыточном: каждый компонент должен получать данные только из магазина? - PullRequest
0 голосов
/ 23 февраля 2020

Просто что-то, что нужно прояснить в хранилище резервов, потому что другие ответы и вопросы в stackoverflow не дают мне достаточно знать руководящие принципы.

В соответствии с моим пониманием избыточности, в приложениях избыточности, все компоненты должны получить данные только из магазина ? это правда? для всех случаев?

А как насчет этих случаев?

Таймер : В моем компоненте я показываю счетчик (отсчет времени до начала игры). поэтому каждую секунду счетчик выключается go. Должен ли я отправить действие, чтобы убрать номер в хранилище, и поскольку компонент подписан на хранилище, он получает обновление. Это правильный способ сохранить использование редукса? Я думаю, что работает дополнительный сценарий, чтобы обновить мой взгляд.

Автозаполнение : Должен ли я сохранить параметры в магазине?

Поскольку все данные должны поступать из магазина, мне нужно сохранить параметры автозаполнения из моего API в магазине. и получить параметры автозаполнения из хранилища.

но это должно быть для каждого компонента, потому что, если у меня есть несколько одинаковых компонентов с разными данными? поэтому я должен сделать состояние, похожее на это:

state = { fooComponent: { autocomplete: [{ key, value }, ... ] } }

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

Ответы [ 2 ]

2 голосов
/ 23 февраля 2020

Не все данные должны храниться в хранилище.

С https://ngrx.io/docs#when -should-i-use-ngrx-for-state-management :

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

Хорошее вещество, которое может ответить на вопрос «Нужен ли мне NgRx» - это принцип SHARI:

Shared: состояние, к которому обращаются многие компоненты и службы.

Hydrated: состояние, которое сохраняется и восстанавливается из внешнего хранилища.

Доступен: состояние, которое должно быть доступно при повторном вводе маршрутов.

Восстановлено: состояние, которое необходимо получить с побочным эффектом.

Влияние: состояние, на которое влияет действия из других источников.

0 голосов
/ 23 февраля 2020

Это даже не хорошая практика хранить все в магазине. Вы хотите сохранить «состояние приложения» в магазине. Состояние может быть «обратный отсчет завершен» или «идет обратный отсчет», но не значение секунд. Это будет излишним. Значение обратного отсчета в секундах может храниться в локальном состоянии компонента обратного отсчета. Вы хотите сохранить простоту и не загрязнять историю действий REDUX

...