Я хотел бы указать на другую проблему, которую я вижу в подходе: вы связываете компоненты с тем, как вы реализовали глобальное состояние.Делая это, вы тесно связываете их.
Скажем, вы хотите изменить структуру своего глобального состояния.Например, вы хотите переместить объект на один уровень вниз в иерархии состояния.При вашем подходе вам придется прикасаться к каждому компоненту, возможно, несколько раз для каждого компонента.
Я бы порекомендовал оставить компоненты как можно более глупыми.Дайте им фактический объект, который они могут прочитать или изменить как @Input()
.Пусть они работают над этим.Добавьте @Output()
, когда / если объект изменяется.
Таким образом, вы более четко разделяете проблемы: компоненты должны просто знать, как обращаться с одним конкретным классом, а не с общим состоянием.