Ввод-вывод vs ngrx Тип отправки - PullRequest
0 голосов
/ 28 мая 2019

Скажите, пожалуйста, как лучше всего передавать данные между компонентами в angular, если вы используете Ngrx Store.

  1. Использовать ввод-вывод
  2. Использовать despatch (action) ofType (action))

Например, Компонент1 -> отправить данные в -> Компонент2.Через некоторое время бизнес говорит мне добавить новый сервис, поэтому я решил создать новый Компонент3 и добавить его между ними.Так что теперь я должен изменить поток данных.Component1-> Component3-> Component2.Таким образом, код будет более понятным и простым для понимания, с input outpt или despatch(action) ofType(action)?

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Я думаю, это зависит от размера вашего приложения и количества уровней между компонентами. Представьте, что у вас есть компонент child5, который должен взаимодействовать с child1, в этом случае не рекомендуется использовать Input Output на на рисунке ниже, если дочерний компонент должен связаться с прародителем , он должен пройти мимо Parent , родительский элемент участвует в потоке, даже если он не имеет что-нибудь делать с этими данными

enter image description here

лучший способ - использовать Subject , создать и EventBus , проверьте мой ответ здесь https://stackoverflow.com/a/56291422/4399281

Ngrx store - лучшие варианты, но если вам это действительно нужно, не реализуйте управление состоянием, если у вас всего несколько компонентов

1 голос
/ 28 мая 2019

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

Входы и выходы могут быстро стать раздражающими для отслеживания, особенно когда приложение становится более сложным. Что если вы хотите добавить функцию, которая использует те же данные? Если вы уже пользуетесь Магазином, вам просто нужно подписаться на нужный вам бит.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...