首页 > 解决方案 > 将数据从父组件传递到子组件

问题描述

我是 Angular 的新手。我想将数据从父组件传递到子组件。实现此目的的一种方法是使用@input()装饰器。今天我遇到了另一种方法。也就是说,使用@ViewChild属性获取子组件的本地引用并将其分配给其实例。这是传递数据的正确方法吗?

标签: angular

解决方案


一般来说,如果你不是绝对需要它,你应该更喜欢使用@Input()装饰器并将值传递给使用它的子组件。

@ViewChild当您需要调用某些组件的方法而不仅仅是更新属性值时,通常会使用引用。它为您提供更大的灵活性。

此外,在变化检测方面,使用@Input效率更高。特别是如果您使用ChangeDetectionStrategy.OnPush. 通过这种方式,Angular 知道它唯一需要检测更改的时间就是@Input更改的时间。

撇开变更检测不谈,使用更新属性根本不是一种常见的做法ViewChild(),这样的代码可能不太容易理解和健壮。

如果您只需要将值从父组件传递给子组件,则绝对应该使用@Input.


推荐阅读