angular - 将数据从父组件传递到子组件
问题描述
我是 Angular 的新手。我想将数据从父组件传递到子组件。实现此目的的一种方法是使用@input()
装饰器。今天我遇到了另一种方法。也就是说,使用@ViewChild
属性获取子组件的本地引用并将其分配给其实例。这是传递数据的正确方法吗?
解决方案
一般来说,如果你不是绝对需要它,你应该更喜欢使用@Input()
装饰器并将值传递给使用它的子组件。
@ViewChild
当您需要调用某些组件的方法而不仅仅是更新属性值时,通常会使用引用。它为您提供更大的灵活性。
此外,在变化检测方面,使用@Input
效率更高。特别是如果您使用ChangeDetectionStrategy.OnPush
. 通过这种方式,Angular 知道它唯一需要检测更改的时间就是@Input
更改的时间。
撇开变更检测不谈,使用更新属性根本不是一种常见的做法ViewChild()
,这样的代码可能不太容易理解和健壮。
如果您只需要将值从父组件传递给子组件,则绝对应该使用@Input
.
推荐阅读
- reactjs - 有没有办法避免将命名空间放在 t 函数上?
- vue.js - 如何更改 pingTimeout socket.io nodejs
- python-3.x - 自从通过 pip 更新 PyQt5 后不再能够启动 Spyder
- r - 如何在 r simmer 中定义排队模型的起始状态?
- python - 在 Spyder 中清除控制台和变量的代码
- angular - 带有订阅的Angular Service方法在组件变量上获取结果
- python - AttributeError:“NoneType”对象没有属性“open_sftp”
- javascript - 使用用户 ID 上传后无法在列表中显示图像
- c++ - if 语句无法正常工作 [C++]
- php - 将线添加到 Google 组合图表