来自官方documentation。一个ViewChild:

Configures a view query.

View queries are set before the ngAfterViewInit callback is called.

解释很少,我仍然不太明白它的用途。

考虑一下我发现的博客中的example

删除@ViewChild(TodoInputCmp)TodoInputCmp中的代码没有影响

有人可以给我一些见识吗?

谢谢

最佳答案

它提供了对 View 中元素或组件的引用:

@Component({
  ...
  directives: [SomeComponent],
  template: `
  <div><span #myVar>xxx</span><div>
  <some-comp></some-comp>`
})
class MyComponent {
  @ViewChild('myVar') myVar:ElementRef;
  @ViewChild(SomeComponent) someComponent:SomeComponent;

  ngAfterViewInit() {
    console.log(this.myVar.nativeElement.innerHTML);
    console.log(this.someComponent);
  }
}
重要:ngAfterViewInit()之前未初始化变量

10-05 19:16