有许多代码示例演示组件通信,
我对这两种技术之间的区别感到困惑。
定义了ViewChild:
ViewChild装饰器可以从父组件类访问子组件、指令或DOM元素,ViewChild返回与给定组件、指令或模板引用选择器匹配的第一个元素。
根据这份资料,
ViewChild赋予对DOM元素的父组件完全访问权,指令在任何更新时不向父组件发送EventEmitter。
我的问题
发布于 2018-07-27 00:00:33
是的,其中一些术语令人困惑。
在大多数情况下,父和子关系(父组件和子组件)是指另一个组件的HTML中的组件。
在下面的示例中,“星型”组件是产品详细信息组件中的子组件。

子组件实际上是在父组件的模板中添加的:
父模板:
<div class='col-md-8'>
<pm-star [rating]='product.starRating'>
</pm-star>
</div>子组件
@Component({
selector: 'pm-star',
templateUrl: './star.component.html',
styleUrls: ['./star.component.css']
})
export class StarComponent {
// ...
}另一方面,ViewChild装饰器允许您访问组件关联模板上的任何元素。然后您可以直接访问它。这与父/子组件没有直接关系。
例如,您可以访问页面上的任意<div>元素并设置其背景色。或者您可以访问<input>元素并设置其焦点。
希望这有助于澄清不同之处。
发布于 2018-07-26 09:40:52
构件相互作用是两个组件相互通信的方式。
ViewChild装饰器是现有的组件交互之一。
https://stackoverflow.com/questions/51535670
复制相似问题