[解決済み】@ViewChildと@ContentChildの違いは何ですか?
2022-04-02 03:01:38
質問
Angular 2が提供するもの
@ViewChild
,
@ViewChildren
,
@ContentChild
と
@ContentChildren
デコレータを使用すると、 コンポーネントの子孫要素を問い合わせることができます。
前者2つと後者2つの違いは何でしょうか?
どのように解決するのですか?
を使ってお答えします。 シャドーDOM と ライトDOM という用語があります(これはウェブコンポーネントから来ています。 こちら ). 一般的には
- シャドー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 { /* ... */ }
- ライト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 { /* ... */ }
というわけで、質問の答えはとてもシンプルです。
との違いは
@ViewChildren
と@ContentChildren
は、その@ViewChildren
はシャドウDOMの要素を探すのに対し@ContentChildren
は、Light DOM でそれらを探します。
関連
-
[解決済み】「ルーター・アウトレット」は既知の要素ではない
-
[解決済み] エラーです。複数のモジュールがマッチしました。skip-import オプションを使用して、最も近いモジュールへのコンポーネントのインポートをスキップしてください。
-
[解決済み] ERROR エラーです。StaticInjectorError(AppModule)[UserformService -> HttpClient]です。
-
[解決済み] ActivatedRouteSnapshot の注入ができない。
-
[解決済み] コンストラクタとngOnInitの違いについて
-
[解決済み] NgModuleにおける宣言、プロバイダ、インポートの違いは何ですか?
-
[解決済み] (変更) vs (ngModelChange) in angular
-
[解決済み】PromiseとObservablesの違いは何ですか?
-
[解決済み】markForCheck()とdetectChanges()の違いは何ですか?)
-
[解決済み] Angular2の括弧、括弧、アスタリスクの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】angular 4アプリにReactiveFormsModuleを追加すると、NgControl用のプロバイダがないエラーが発生する。
-
[解決済み】angularJS2プロジェクトでsystemjs.config.jsファイルをどこに置くか/見つけるか?
-
[解決済み】angularでpreflightのレスポンスがHTTP okステータスにならない。
-
[解決済み] Angular 2で簡単なアコーディオンを作成するにはどうすればよいですか?
-
[解決済み] Angular 2.0 翻訳パイプが見つかりません。
-
[解決済み] Angular2: [(ngModel)] with [ngModelOptions]="{standalone: true}"を使って、モデルのプロパティへの参照にリンクさせる。
-
[解決済み] モジュール 'AppModule' によってインポートされた予期しないディレクティブ 'LoginComponent' があります。NgModuleアノテーションを追加してください。
-
[解決済み] AngularでKendo Tabstripのタブを閉じるボタンを実装する方法
-
[解決済み] Angular 6でmouseoverとmouseoutを使用する方法
-
[解決済み] Angular2におけるViewChildとは?