Angular コンポーネントのソースコード例の分析
この記事では主に Angular コンポーネントを解析するソースコードの例を紹介しますので、参考にしてください。
Webコンポーネント
Angularコンポーネントを紹介する前に、W3C Webコンポーネントについて簡単に理解しましょう
定義
W3Cは、統一コンポーネントの標準方式であり、Webコンポーネントの標準を提案しています。
各コンポーネントには独自の html、css、js コードが含まれています。
Web コンポーネント標準には、次の 4 つの重要な概念が含まれています。
1.カスタム要素 (カスタム タグ): カスタム HTML タグと要素を作成できます。
2.HTML テンプレート (HTML テンプレート): タグを使用して、いくつかのコンテンツを定義します。ただし、それをページにロードするのではなく、JS コードを使用して初期化します。
3. 他の要素から完全に独立した DOM サブツリーを作成できます。 (HTML インポート): HTML ドキュメントに他の HTML ドキュメントを導入する方法、。
例
hello-componentを定義する<template id="hello-template"> <style> h1 { color: red; } </style> <h1>Hello Web Component!</h1> </template> <script> // 指向导入文档,即本例的index.html var indexDoc = document; // 指向被导入文档,即当前文档hello.html var helloDoc = (indexDoc._currentScript || indexDoc.currentScript).ownerDocument; // 获得上面的模板 var tmpl = helloDoc.querySelector('#hello-template'); // 创建一个新元素的原型,继承自HTMLElement var HelloProto = Object.create(HTMLElement.prototype); // 设置 Shadow DOM 并将模板的内容克隆进去 HelloProto.createdCallback = function() { var root = this.createShadowRoot(); root.appendChild(indexDoc.importNode(tmpl.content, true)); }; // 注册新元素 var hello = indexDoc.registerElement('hello-component', { prototype: HelloProto }); </script>
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-COMPATIBLE" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="author" content="赖祥燃, laixiangran@163.com, http://www.laixiangran.cn"/> <title>Web Component</title> <!--导入自定义组件--> <link rel="import" href="hello.html" rel="external nofollow" > </head> <body> <!--自定义标签--> <hello-component></hello-component> </body> </html>
Angular コンポーネント
Angular コンポーネントはディレクティブの一種であり、テンプレートを備えたディレクティブとして理解できます。他の 2 つのタイプは、属性ディレクティブと構造ディレクティブです。 基本的な構成@Component({ selector: 'demo-component', template: 'Demo Component' }) export class DemoComponent {}
- コンポーネントデコレーター: Angularコンポーネントになるには、各コンポーネントクラスを@componentで修飾する必要があります。
- コンポーネントのメタデータ: コンポーネントのメタデータ: セレクター、テンプレートなど。以下では、各メタデータの意味に焦点を当てます。
- コンポーネントクラス: コンポーネントは実際には通常のクラスであり、コンポーネントのロジックはコンポーネントクラスで定義および実装されます。
- コンポーネント テンプレート: 各コンポーネントはテンプレートに関連付けられており、ページ上の DOM 要素はこのコンポーネント インスタンスのホスト要素です。
タイプ | 機能 | |
---|---|---|
コンポーネントのアニメーションを設定します | changeDetection | |
コンポーネントの変更検出戦略を設定します | encapsulation | |
コンポーネントのビューパッケージ化オプションを設定します | entryComponents | |
設定はコンポーネントビューに動的に挿入されますコンポーネントリスト | interpolation | |
カスタムコンポーネントの補間マーク、デフォルトは二重中括弧です | moduleId | |
ES配下にこのコンポーネントのモジュールを設定します/CommonJS 仕様 ID。テンプレート スタイルの相対パスを解決するために使用されます | styleUrls | |
コンポーネントによって参照される外部スタイル ファイルを設定します | styles | |
Setコンポーネントによって使用されるインライン スタイル | template | |
コンポーネントのインライン テンプレートを設定します | templateUrl | |
コンポーネント テンプレートが配置されているパスを設定します | viewProviders | |
コンポーネントとそのすべてのサブコンポーネントを設定します (ContentChildren を除く) 利用可能なサービス |
Function | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
テンプレートにコンポーネント インスタンスを設定します。 のエイリアスを使用すると、 | host | |||||||||||||||||||
を呼び出して、コンポーネントのイベント、アクション、プロパティを設定できます | inputs | |||||||||||||||||||
settings コンポーネントの入力プロパティ | outputs | |||||||||||||||||||
コンポーネントの出力プロパティを設定 | providers | |||||||||||||||||||
を設定しますコンポーネントとそのすべてのサブコンポーネント (ContentChildren を含む) で利用可能なサービス (依存関係の注入) ) | queries | |||||||||||||||||||
コンポーネントに注入する必要があるクエリを設定します | selector | |||||||||||||||||||
テンプレート内でこのコンポーネントを識別するために使用されるCSSセレクターを設定します(コンポーネントのカスタムタグ) |
生命周期钩子 | 调用时机 |
---|---|
ngOnChanges | 在ngOnInit之前调用,或者当组件输入数据(通过@Input装饰器显式指定的那些变量)变化时调用。 |
ngOnInit | 第一次ngOnChanges之后调用。建议此时获取数据,不要在构造函数中获取。 |
ngDoCheck | 每次变化监测发生时被调用。 |
ngAfterContentInit | 使用 |
ngAfterContentChecked | ngAfterContentInit后被调用,或者每次变化监测发生时被调用(只适用组件)。 |
ngAfterViewInit | 创建了组件的视图及其子视图之后被调用(只适用组件)。 |
ngAfterViewChecked | ngAfterViewInit,或者每次子组件变化监测时被调用(只适用组件)。 |
ngOnDestroy | 销毁指令/组件之前触发。此时应将不会被垃圾回收器自动回收的资源(比如已订阅的观察者事件、绑定过的DOM事件、通过setTimeout或setInterval设置过的计时器等等)手动销毁掉。 |
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
以上がAngular コンポーネントのソースコード例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック

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

Python 関数の紹介: exec 関数の概要と例 はじめに: Python では、exec は、文字列またはファイルに格納されている Python コードを実行するために使用される組み込み関数です。 exec 関数はコードを動的に実行する方法を提供し、プログラムが実行時に必要に応じてコードを生成、変更、実行できるようにします。この記事では、exec 関数の使い方と実用的なコード例を紹介します。 exec 関数の使用方法: exec 関数の基本的な構文は次のとおりです。

Go 言語のインデント仕様と例 Go 言語は Google によって開発されたプログラミング言語であり、その簡潔で明確な構文で知られており、インデント仕様はコードの読みやすさと美しさに重要な役割を果たします。この記事ではGo言語のインデントの仕様を紹介し、具体的なコード例を通して詳しく解説します。インデントの仕様 Go 言語では、スペースの代わりにタブがインデントに使用されます。インデントの各レベルは 1 つのタブで、通常はスペース 4 個の幅に設定されます。このような仕様により、コーディング スタイルが統一され、チームが協力してコンパイルできるようになります。

Oracle の DECODE 関数は、クエリ ステートメントのさまざまな条件に基づいてさまざまな結果を返すためによく使用される条件式です。この記事ではDECODE関数の構文・使い方・サンプルコードを詳しく紹介します。 1. DECODE 関数の構文 DECODE(expr,search1,result1[,search2,result2,...,default]) expr: 比較する式またはフィールド。検索1、

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

Python 関数入門: abs 関数の使い方と例 1. abs 関数の使い方の概要 Python では、abs 関数は、指定された値の絶対値を計算するために使用される組み込み関数です。数値引数を受け入れ、その数値の絶対値を返すことができます。 abs 関数の基本構文は次のとおりです。 abs(x) ここで、x は絶対値を計算する数値パラメータであり、整数または浮動小数点数を指定できます。 2. abs 関数の例 以下に、いくつかの具体的な例を通して abs 関数の使用法を示します。 例 1: 計算

Python 関数入門: eval 関数の関数と例 Python プログラミングにおいて、eval 関数は非常に便利な関数です。 eval関数は文字列をプログラムコードとして実行することができ、その機能は非常に強力です。この記事では、eval関数の詳しい機能と使用例を紹介します。 1. eval関数の機能 eval関数の機能は非常にシンプルで、文字列をPythonコードとして実行することができます。これは、文字列を変換できることを意味します

Python 関数の紹介: isinstance 関数の使用法と例 Python は、プログラミングをより便利かつ効率的にするための多くの組み込み関数を提供する強力なプログラミング言語です。非常に便利な組み込み関数の 1 つは isinstance() 関数です。この記事では、isinstance関数の使い方と例を紹介し、具体的なコード例を紹介します。 isinstance() 関数は、オブジェクトが指定されたクラスまたは型のインスタンスであるかどうかを判断するために使用されます。この関数の構文は次のとおりです
