Angular コンポーネント学習におけるコンテンツ投影の簡単な分析
この記事では、Angular コンポーネントでのコンテンツ プロジェクションについて説明します。コンテンツ プロジェクションは、Vue のスロットに非常に似ています。コンポーネントをカプセル化するときに非常に便利です。一緒に体験しましょう
[関連チュートリアルの推奨事項: "angular チュートリアル 》]
##1. コンテンツの一部を投影する
##コンテナ コンポーネントは次のように記述されます#
<div> 编号1 <ng-content></ng-content> </div>
<app-page-container> 未指定投影位置的内容会被投影到无select属性的区域 </app-page-container>
#2. 複数のコンテンツ/コンポーネントをプロジェクトします
#コンテナコンポーネントは次のように記述します
タグを使用して投影位置をロックします
- クラスを使用して投影位置をロックします投影位置
- # カスタム コンポーネント名で投影位置をロック
- #カスタム属性で投影位置をロック
- #ビジネス コンポーネントは次のように使用されます
<div> 编号2 <ng-content select="h3"></ng-content> <ng-content select=".my-class"></ng-content> <ng-content select="app-my-hello"></ng-content> <ng-content select="[content]"></ng-content> </div>
ログイン後にコピー - デモ
<app-page-container> <h3 id="使用标签锁定投影位置">使用标签锁定投影位置</h3> <div class="my-class">使用class锁定投影位置</div> <app-my-hello>使用自定义组件名称锁定投影位置</app-my-hello> <div content>使用自定义属性锁定投影位置</div> </app-page-container>
ログイン後にコピー
##3. 子要素の投影
vue のテンプレートと同様に、
を使用して子要素をラップし、不要な dom レイヤーを削減しますコンテナ コンポーネントは次のように記述されます
<div> 编号4 <ng-content select="question"></ng-content> </div>ログイン後にコピー
ビジネス コンポーネントは次のように記述されます
#<app-page-container> <ng-container ngProjectAs="question"> <p>内容投影酷吗?</p> <p>内容投影酷吗?</p> <p>内容投影酷吗?</p> <p>内容投影酷吗?</p> </ng-container> </app-page-container>ログイン後にコピー
4. 条件付きコンテンツの投影
中国語 Web サイトの説明:
コンポーネントが必要な場合__条件付き_render content またはコンテンツを複数回レンダリングする場合は、条件付きでレンダリングされるコンテンツを含む ng-template 要素を受け入れるようにコンポーネントを構成する必要があります。
ng-templateこの場合、コンポーネントが ng-content を定義していなくても、コンポーネントのユーザーがコンテンツを提供する限り、ng-content 要素を使用することはお勧めできません。要素または ng - content 要素は
ngIf## を使用します
要素をレンダリングするための #ngTemplateOutlet ディレクティブ。
- *ngIf
- を使用して、投影をレンダリングするかどうかを制御します。
<div> 编号3 <ng-content select="[button]"></ng-content> <p *ngIf="expanded"> <ng-container [ngTemplateOutlet]="content.templateRef"> </ng-container> </p> </div>
ログイン後にコピービジネス コンポーネントでは、ng-template
を使用して実際の要素をラップします。 my-hello コンポーネントは、印刷状況を観察するために ngOnInit() でログ出力を行うだけです。
<app-page-container> <div button> <button appToggle>切换</button> </div> <ng-template appContent> <app-my-hello>有条件的内容投影~</app-my-hello> </ng-template> </app-page-container>
ロジックがまだ共謀していないため、ページが以前ほどスムーズにレンダリングされないことがわかります。続けましょう。コマンドを作成し、NgModule に登録します。使用する前に登録する必要があります~コマンドは登録する必要があります~
再度定義していきます コンポーネント内のロゴの表示/非表示を制御するコマンドimport { Directive, TemplateRef } from '@angular/core'; @Directive({ selector: '[appContent]', }) export class ContentDirective { constructor(public templateRef: TemplateRef<unknown>) {} }ログイン後にコピー
##コマンドの登録が必要です~
@Directive({ selector: '[appToggle]', }) export class ToggleDirective { @HostListener('click') toggle() { this.app.expanded = !this.app.expanded; } constructor(public app: PageContainerComponent) {} }
コンテナ コンポーネントのコンテンツの指示に今定義を記述します。ページは現在エラーを報告していません~
export class PageContainerComponent implements OnInit { expanded: boolean = false; @ContentChild(ContentDirective) content!: ContentDirective; }
ログから、expanded を切り替えると次のことがわかります。
コンテナ コンポーネントのロゴ。開いた状態のみです。my-helloではページ上にレンダリングされたコンテンツが表示されませんが、コンポーネントは実際に初期化されています。コンポーネントは初期化されます。次の
ngIf
<div *ngIf="false">
<ng-content *ngIf="false" select="app-my-hello"></ng-content>
</div>
5. @ContentChild および @ContentChildrenこれら 2 つのデコレータを使用してコンポーネントを投影します 操作を実行します
@ContentChild(HelloWorldComp)
helloComp: HelloWorldComp;
@ContentChildren(HelloWorldComp)
helloComps: QueryList<HelloWorldComp>;
ログイン後にコピーngAfterContentInit()
フックで実行して、操作します。投影されたコンポーネント @ContentChild(HelloWorldComp) helloComp: HelloWorldComp; @ContentChildren(HelloWorldComp) helloComps: QueryList<HelloWorldComp>;
#6. @ViewChild と @ViewChildren
#これら 2 つのデコレータを使用して、フィンガージョインされたサブオブジェクトを操作します。コンポーネント
@ViewChild(HelloWorldComp)
helloComp: HelloWorldComp;
@ViewChildren(HelloWorldComp)
helloComps QueryList<HelloWorldComp>;
ログイン後にコピーInngAfterViewInit()フックが終了した後実行して、直接のサブコンポーネントを操作します
#結論
コンポーネントの使用法についてここで書きました。私たちの文章スキルには限界があるので、さあ、 .~ を取得しました
プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がAngular コンポーネント学習におけるコンテンツ投影の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
@ViewChild(HelloWorldComp) helloComp: HelloWorldComp; @ViewChildren(HelloWorldComp) helloComps QueryList<HelloWorldComp>;

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









win10で一部のゲームをプレイすると、画面がフリーズしたり画面がぼやけるなどの不具合が多くのユーザーに発生しますが、現時点ではダイレクトプレイ機能をオンにすることで問題を解決でき、機能の操作方法も非常に簡単です。 win10 の古いコンポーネントである Directplay をインストールする方法 1. 検索ボックスに「コントロール パネル」と入力して開きます 2. 表示方法として大きなアイコンを選択します 3. 「プログラムと機能」を見つけます 4. 左側をクリックして有効にするか、 Win 機能をオフにする 5. ここで古いバージョンを選択します チェックボックスをオンにするだけです

Angular.js は、動的アプリケーションを作成するための無料でアクセスできる JavaScript プラットフォームです。 HTML の構文をテンプレート言語として拡張することで、アプリケーションのさまざまな側面を迅速かつ明確に表現できます。 Angular.js は、コードの作成、更新、テストに役立つさまざまなツールを提供します。さらに、ルーティングやフォーム管理などの多くの機能も提供します。このガイドでは、Ubuntu24 に Angular をインストールする方法について説明します。まず、Node.js をインストールする必要があります。 Node.js は、ChromeV8 エンジンに基づく JavaScript 実行環境で、サーバー側で JavaScript コードを実行できます。ウブにいるために

Angular Universal をご存知ですか?これは、Web サイトがより優れた SEO サポートを提供するのに役立ちます。

インターネットの急速な発展に伴い、フロントエンド開発テクノロジーも常に改善され、反復されています。 PHP と Angular は、フロントエンド開発で広く使用されている 2 つのテクノロジーです。 PHP は、フォームの処理、動的ページの生成、アクセス許可の管理などのタスクを処理できるサーバー側スクリプト言語です。 Angular は、単一ページ アプリケーションの開発やコンポーネント化された Web アプリケーションの構築に使用できる JavaScript フレームワークです。この記事では、PHPとAngularをフロントエンド開発に使用する方法と、それらを組み合わせる方法を紹介します。

Vue は非常に人気のあるフロントエンド フレームワークであり、コンポーネント化、データ バインディング、イベント処理など、開発者が効率的で柔軟で保守が容易な Web アプリケーションを構築するのに役立つ多くのツールと機能を提供します。この記事では、Vueを使ってカレンダーコンポーネントを実装する方法を紹介します。 1. 要件の分析 まず、このカレンダー コンポーネントの要件を分析する必要があります。基本的なカレンダーには次の機能が必要です: 当月のカレンダー ページの表示、前月または翌月への切り替えのサポート、特定の日のクリックのサポート、

Vue は現在最も人気のあるフロントエンド フレームワークの 1 つであり、VUE3 は Vue フレームワークの最新バージョンであり、VUE2 と比較してパフォーマンスが高く、開発エクスペリエンスが優れているため、多くの開発者の最初の選択肢となっています。 VUE3 では extends を使ってコンポーネントを継承することが非常に実用的な開発手法となっておりますので、この記事では extends を使ってコンポーネントを継承する方法を紹介します。エクステンドとは何ですか? Vue では、extends は非常に実用的な属性であり、子コンポーネントが親から継承するために使用できます。

Angular フレームワークのコンポーネントのデフォルトの表示動作は、ブロックレベルの要素ではありません。この設計の選択により、コンポーネント スタイルのカプセル化が促進され、開発者が各コンポーネントの表示方法を意識的に定義することが促進されます。 CSS プロパティの表示を明示的に設定することで、Angular コンポーネントの表示を完全に制御して、目的のレイアウトと応答性を実現できます。

Win10 の古いバージョンのコンポーネントは、デフォルトで閉じられていることが多いため、ユーザー自身が設定で有効にする必要があります。まず、設定を入力する必要があります。操作は非常に簡単です。以下の手順に従ってください。Win10 の古いバージョンはどこにありますか?バージョン コンポーネント? 開く 1. [スタート] をクリックし、[Win システム] をクリックします 2. クリックしてコントロール パネルに入ります 3. 次に、下のプログラムをクリックします 4. [Win 機能を有効または無効にする] をクリックします 5. ここで必要なものを選択できます開く
