gpt4 book ai didi

angular - @ViewChild 和@ContentChild 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 16:44:25 30 4
gpt4 key购买 nike

Angular 2 提供了@ViewChild@ViewChildren@ContentChild@ContentChildren 装饰器来查询组件的后代元素。

前两者和后两者有什么区别?

最佳答案

我将使用 Shadow DOMLight DOM 术语回答您的问题(它来自网络组件,请参阅更多信息 here )。一般而言:

  • Shadow DOM - 是组件的内部 DOM,由您(作为组件的创建者) 并对最终用户隐藏。例如:
@Component({
selector: 'some-component',
template: `
<h1>I am Shadow DOM!</h1>
<h2>Nice to meet you :)</h2>
<ng-content></ng-content>
`;
})
class SomeComponent { /* ... */ }
  • Light DOM - 是组件的最终用户提供给组件的 DOM。例如:
@Component({
selector: 'another-component',
directives: [SomeComponent],
template: `
<some-component>
<h1>Hi! I am Light DOM!</h1>
<h2>So happy to see you!</h2>
</some-component>
`
})
class AnotherComponent { /* ... */ }

所以,你的问题的答案很简单:

The difference between @ViewChildren and @ContentChildren is that @ViewChildren look for elements in Shadow DOM while @ContentChildren look for them in Light DOM.

关于angular - @ViewChild 和@ContentChild 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326745/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com