NGRX Несколько магазинов или вложенное состояние? - PullRequest
1 голос
/ 06 марта 2019

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

{
    user: 'someuser',
    preferences: {
        module1prefs: {
            pref1: 'abc',
            pref2: 'xyz'
        },
        module2prefs: {
            pref3: 123,
            pref4: 456
        }
    }
}

Я изначально надеялсячтобы иметь возможность создать вложенную иерархию из общей функции в состоянии корневого NGRX (то есть предпочтений в примере выше).Это позволило бы мне добавить Observer в селектор для этой корневой функции, чтобы запускать периодические (REST API) операции сохранения.Кроме того, мне было бы легко создать один документ предпочтений JSON для отправки на сервер для сохранения.

С того, что я читал , разделяя одну функцию NGRX между модулямине рекомендуется.

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

  1. Несколько модулей могут передать свои настройки предпочтений в состояние
  2. Состояние легко наблюдать из одного наблюдателя (для запуска сохранения на сервере)
  3. Состояние легко сериализуется в один документ JSON, который можно отправить на сервер для сохранения всех предпочтений
...