子组件从@Input或服务订阅获取数据?哪个更好?

问题描述 投票:2回答:3

我有一个父组件,一个子组件和一个服务。父组件从服务预订对象数据。子组件也需要侦听该数据更改。哪个更好,子组件使用@Input从其父组件获取数据,还是让它也订阅该服务?

angular subscription angular-components angular-input
3个回答
2
投票

@ Input()的用例

  1. 当我们只有一到两个层次时
  2. 当我们传递的值被其他组件使用时

服务用例

  1. [当我们的层次结构很多时,传递值变得有点困难
  2. [当某些组件功能取决于某个组件值时,该组件值可能会下降大约10个层次,因此在这种情况下,我们可以使用Subscribe to service,因此只要值更改,我们就可以在我们的组件中自动使用它]]
  3. 当一个值被多个组件使用时

1
投票

如果服务以所需的格式提供确切的数据,那么直接订购服务要比依赖于父组件更好。这将减少代码的整体复杂性并提高性能。


1
投票

@@ Emmanuel Sayson如果您不更新父项上的数据,则更好地使用服务,这取决于用例。嵌套层次结构中的服务更加清晰

© www.soinside.com 2019 - 2024. All rights reserved.