首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewChild vs ChildComponent -角6

ViewChild vs ChildComponent -角6
EN

Stack Overflow用户
提问于 2018-07-26 09:37:35
回答 2查看 1.2K关注 0票数 3

有许多代码示例演示组件通信,

我对这两种技术之间的区别感到困惑。

  • ChildComponent
  • ViewChild

定义了ViewChild:

ViewChild装饰器可以从父组件类访问子组件、指令或DOM元素,ViewChild返回与给定组件、指令或模板引用选择器匹配的第一个元素。

根据这份资料,

ViewChild赋予对DOM元素的父组件完全访问权,指令在任何更新时不向父组件发送EventEmitter。

我的问题

  • 我们可以说父组件和视图子组件之间的关系只是单向的,而父组件和子组件之间的关系是双向绑定的?
  • 如何运作核心,数据绑定,生命周期?
  • 真正的实际用途是什么,它要解决的问题是什么?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-27 00:00:33

是的,其中一些术语令人困惑。

在大多数情况下,父和子关系(父组件和子组件)是指另一个组件的HTML中的组件。

在下面的示例中,“星型”组件是产品详细信息组件中的子组件。

子组件实际上是在父组件的模板中添加的:

父模板:

代码语言:javascript
复制
  <div class='col-md-8'>
    <pm-star [rating]='product.starRating'>
    </pm-star>
  </div>

子组件

代码语言:javascript
复制
@Component({
  selector: 'pm-star',
  templateUrl: './star.component.html',
  styleUrls: ['./star.component.css']
})
export class StarComponent {
  // ...
}

另一方面,ViewChild装饰器允许您访问组件关联模板上的任何元素。然后您可以直接访问它。这与父/子组件没有直接关系。

例如,您可以访问页面上的任意<div>元素并设置其背景色。或者您可以访问<input>元素并设置其焦点。

希望这有助于澄清不同之处。

票数 4
EN

Stack Overflow用户

发布于 2018-07-26 09:40:52

构件相互作用是两个组件相互通信的方式。

ViewChild装饰器是现有的组件交互之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51535670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档