Дочерний компонент, получающий данные из @Input или Service Subscription? Что лучше? - PullRequest
2 голосов
/ 29 января 2020

У меня есть родительский компонент, дочерний компонент и служба. Родительский компонент подписывает данные объекта из сервиса. Дочерний компонент также должен прослушивать эти изменения данных. Что лучше, дочерний компонент получает данные от своего родителя, используя @Input, или разрешает подписываться на сервис тоже?

Ответы [ 3 ]

2 голосов
/ 29 января 2020

Варианты использования для @Input ()

  1. Когда у нас только одна-две иерархии
  2. Когда передаваемое нами значение используется другим Компоненты

Варианты использования для Сервиса

  1. Когда у нас много иерархии вниз и передача значений становится немного жесткой
  2. Когда некоторые функциональные возможности компонента зависят от некоторого значения компонента, которое может составлять около 10 иерархий, поэтому в этом случае мы можем использовать Subscribe to service, чтобы при каждом изменении значения мы могли автоматически использовать его в нашем компоненте
  3. Когда значение используется более чем одним компонентом
1 голос
/ 29 января 2020

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

1 голос
/ 29 января 2020

Если служба предоставляет точные данные в желаемом формате, то подписка на службу напрямую лучше, чем в зависимости от родительского компонента. Это уменьшит общую сложность кода, а также улучшит производительность.

В этих сценариях родительский компонент может использоваться в качестве оболочки или прокси ios:

  1. Служба не предоставляет данные в точном формате требуется дочерними компонентами.

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

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

...