ホームページ > 記事 > ウェブフロントエンド > Angular コンポーネントのライフサイクル フックの詳細
この記事では、Angular コンポーネントのライフサイクル フックについて説明します。一定の参考値があるので、困っている友達が参考になれば幸いです。
angular チュートリアル "]
注: ngDoCheck では非常に複雑なことを行わず、使用するときにチェック位置をより正確に定義してください。パフォーマンスの問題が発生する可能性があります。マウスクリックイベントやキーボード入力イベントなどのあらゆる変更がngDoCheckをトリガーするためです。
デフォルトの戦略
@ViewChild デコレータと ElementRef 要素は
を参照します。実際のアプリケーションでは、これら 2 つの要素を通じてビュー レイヤーの DOM 要素を取得でき、取得した DOM 要素は操作できる。
// .ts 文件中声明 @ViewChild('inputElem') inputElem: ElementRef; // 获取Dom元素的值 const value = this.inputElem.nativeElement.value; // .html 文件中使用 <input nz-input type="text" #inputElem>ngAfterContentInit と ngAfterContentChecked
プロジェクション
場合によっては、コンポーネント テンプレートのコンテンツを動的に変更する必要がありますが、これらのコンテンツには複雑なビジネス ロジックがなく、変更する必要がありません。一部の HTML フラグメントでは、Angular が提供するプロジェクションと呼ばれる機能を使用できます。 Angular では、ng-content ディレクティブを使用して、親コンポーネント テンプレートのフラグメントをその子コンポーネントに投影できます。
カスタム コンポーネントのタグ内に他のタグをネストできないことに注意してください。ネストできる通常の HTML タグとは異なりますが、プロジェクションを使用してネストを実現できます。app.component.html
<div class="wrapper"> <h1>我是父组件</h1> <div>这个 div 定义在父组件</div> <!-- 将要投影的内容写在子组件的标签之间 --> <app-child> <div class="header">这个是页头。这个 div 是父组件投影到子组件的。</div> <div class="footer">这个是页脚。</div> </app-child> </div>child.component.html
<div class="wrapper"> <h1>这是子组件</h1> <!-- ng-content是投影点 --> <ng-content select=".header"></ng-content> <div>这个div定义在子组件中</div> <ng-content select=".footer"></ng-content> </div>その中で、select を使用します 属性により、ターゲットを絞ったコンテンツの投影が可能になります。ただし、
select 属性に対応する値で指定されるラベル ノードは、コンポーネントの
直接の子ノード である必要があることに注意してください。それ以外の場合、
select 属性は無効です。
コンポーネントにサブコンポーネントがある場合、親コンポーネントの 2 つのフックが最初にトリガーされ、親コンポーネントの投影コンテンツがアセンブルされた後にサブコンポーネントの 2 つのフックがトリガーされます。
プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がAngular コンポーネントのライフサイクル フックの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。