Я пытаюсь реализовать состояние NGRX для управления пользовательскими настройками во всем приложении.Я хочу, чтобы каждый модуль мог вносить настройки в состояние предпочтений, и в идеале я бы хотел, чтобы состояние предпочтений было иерархическим, чтобы модули могли иметь свое собственное пространство имен, например:
{
user: 'someuser',
preferences: {
module1prefs: {
pref1: 'abc',
pref2: 'xyz'
},
module2prefs: {
pref3: 123,
pref4: 456
}
}
}
Я изначально надеялсячтобы иметь возможность создать вложенную иерархию из общей функции в состоянии корневого NGRX (то есть предпочтений в примере выше).Это позволило бы мне добавить Observer в селектор для этой корневой функции, чтобы запускать периодические (REST API) операции сохранения.Кроме того, мне было бы легко создать один документ предпочтений JSON для отправки на сервер для сохранения.
С того, что я читал , разделяя одну функцию NGRX между модулямине рекомендуется.
Пожалуйста, не могли бы вы поэтому порекомендовать подход или лучшую практику, которая удовлетворяет моим требованиям:
- Несколько модулей могут передать свои настройки предпочтений в состояние
- Состояние легко наблюдать из одного наблюдателя (для запуска сохранения на сервере)
- Состояние легко сериализуется в один документ JSON, который можно отправить на сервер для сохранения всех предпочтений