Angular 2 を使い始めたばかりです。
Angular 2 のコンポーネントとディレクティブの違いは何ですか?
Angular 2 を使い始めたばかりです。
Angular 2 のコンポーネントとディレクティブの違いは何ですか?
ギュンターが言ったことを完了するために、2 種類のディレクティブを区別できます。
NgFor
とNgIf
です。これらはテンプレートの概念にリンクされており、接頭辞として*
. 詳細については、このリンクの「テンプレートと *」セクションを参照してください: http://victorsavkin.com/post/119943127151/angular-2-template-syntaxお役に立てば幸いです、ティエリー
コンポーネントは、関連付けられたビュー (つまり、レンダリングされる HTML) を持つディレクティブです。すべてのコンポーネントはディレクティブですが、すべてのディレクティブがコンポーネントというわけではありません。ディレクティブには次の 3 種類があります。
*ngIf
、DOM 要素 (またはカスタム DOM 要素であるが DOM 要素である角度コンポーネント) を挿入または削除できます。import { Component, HostListener, HostBinding, Directive, ElementRef } from '@angular/core';
@Directive({
selector: '[appHighlight]'
})
export class HighlightDirective {
constructor(el: ElementRef) {
el.nativeElement.style.backgroundColor = 'yellow';
}
}
@Component({
selector: 'app-root',
template: `
<div *ngIf='myBool' appHighlight>Hi there</div>
`,
styleUrls: ['./app.component.scss'],
})
export class AppComponent {
myBool:boolean = true;
}
上記の例では、次のことがわかります。
AppComponent
には、表示する要素を含むテンプレートが<div>
あります。<div>
要素にあります。これは、<div>
要素の動作を操作することを意味します。この場合、テキストが強調表示され、黄色に変わります。*ngIf
も要素に配置され、<div>
要素を挿入するかどうかを決定します。は、式を に強制できる<div>
かどうかに応じて、条件付きで表示されます。myBool
true
Angular 2 は、アーキテクチャのコンポーネント/サービス モデルに従います。
angular 2アプリケーションはコンポーネントで構成されています。コンポーネントは、HTML テンプレートと、画面の一部を制御するコンポーネント クラス ( typescript クラス ) の組み合わせです。
適切な方法として、コンポーネント クラスは、それぞれのビューへのデータ バインディングに使用されます。双方向のデータ バインディングは、angular フレームワークによって提供される優れた機能です。
コンポーネントは、指定されたセレクター名を使用してアプリケーション全体で再利用できます。
コンポーネントは、テンプレートを使用した一種のディレクティブでもあります。
他の 2 つのディレクティブは次のとおりです。
構造ディレクティブ — DOM 要素を追加および削除して DOM レイアウトを変更します。例: NgFor
とNgIf
.
属性ディレクティブ — 要素、コンポーネント、または別のディレクティブの外観または動作を変更します。元: NgStyle