Angularjs-overview
AngularJS-概要
AngularJSは、オープンソースのWebアプリケーションフレームワークです。 もともと2009年にMisko HeveryとAdam Abronsによって開発されました。 現在はGoogleによって管理されています。 最新バージョンは1.2.21です。
https://docs.angularjs.org/guide/introduction [公式ドキュメント]にあるAngularJSの定義は次のとおりです-
'_AngularJSは、動的Webアプリケーションの構造フレームワークです。 テンプレート言語としてHTMLを使用し、HTMLの構文を拡張して、アプリケーションコンポーネントを明確かつ簡潔に表現できます。 そのデータバインディングと依存性注入により、現在記述しなければならないコードの多くが排除されます。 そして、それはすべてブラウザ内で行われるため、あらゆるサーバー技術との理想的なパートナーになります。_
一般的な機能
AngularJSの一般的な機能は次のとおりです-
- AngularJSは、リッチインターネットアプリケーション(RIA)を作成できる効率的なフレームワークです。
- AngularJSは、JavaScriptを使用してクリーンなModel View Controller(MVC)方式でクライアント側アプリケーションを作成するオプションを開発者に提供します。
- AngularJSで記述されたアプリケーションは、ブラウザーに準拠しています。 AngularJSは、各ブラウザーに適したJavaScriptコードを自動的に処理します。
- AngularJSはオープンソースであり、完全に無料で、世界中の何千人もの開発者によって使用されています。 Apacheライセンスバージョン2.0でライセンスされています。
全体として、AngularJSは、大規模で高性能で、メンテナンスが容易なWebアプリケーションを構築するためのフレームワークです。
コア機能
AngularJSのコア機能は次のとおりです-
- データバインディング-モデルとビューコンポーネント間のデータの自動同期です。
- スコープ-これらはモデルを参照するオブジェクトです。 コントローラとビューの間の接着剤として機能します。
- Controller -これらは特定のスコープにバインドされたJavaScript関数です。
- サービス-AngularJSには、XMLHttpRequestを作成するための$ httpなどの組み込みサービスがいくつか付属しています。 これらは、アプリ内で1回だけインスタンス化されるシングルトンオブジェクトです。
- フィルター-これらは配列からアイテムのサブセットを選択し、新しい配列を返します。
- ディレクティブ-ディレクティブは、要素、属性、CSSなどのDOM要素のマーカーです。 これらを使用して、新しいカスタムウィジェットとして機能するカスタムHTMLタグを作成できます。 AngularJSには、ngBind、ngModelなどの組み込みディレクティブがあります。
- テンプレート-これらは、コントローラとモデルからの情報を含むレンダリングされたビューです。 これらは、単一のファイル(indexlなど)または_partials_を使用した1ページの複数のビューです。
- ルーティング-ビューを切り替える概念です。
- Model View Whatever -MVWは、アプリケーションをモデル、ビュー、コントローラーと呼ばれる異なる部分に分割するための設計パターンであり、それぞれが異なる責任を持ちます。 AngularJSは、従来の意味でMVCを実装していませんが、MVVM(Model-View-ViewModel)に近いものを実装しています。 Angular JSチームは、ユーモラスにModel View Whateverと呼んでいます。
- ディープリンク-ディープリンクを使用すると、アプリケーションの状態をURLにエンコードして、ブックマークすることができます。 その後、アプリケーションをURLから同じ状態に復元できます。
- 依存性注入-AngularJSには、開発者がアプリケーションを簡単に作成、理解、テストできるようにする組み込みの依存性注入サブシステムがあります。
概念
次の図は、AngularJSの重要な部分を示しています。これについては、以降の章で詳しく説明します。
AngularJSの利点
AngularJSの利点は次のとおりです-
- 非常にクリーンで保守可能な方法で単一ページアプリケーションを作成する機能を提供します。
- HTMLへのデータバインディング機能を提供します。 したがって、ユーザーにリッチでレスポンシブなエクスペリエンスを提供します。
- AngularJSコードはユニットテスト可能です。
- AngularJSは、依存性注入を使用し、懸念の分離を利用します。
- AngularJSは再利用可能なコンポーネントを提供します。
- AngularJSを使用すると、開発者は短いコードでより多くの機能を実現できます。
- AngularJSでは、ビューは純粋なhtmlページであり、JavaScriptで記述されたコントローラーがビジネス処理を行います。
何よりも、AngularJSアプリケーションは、AndroidおよびiOSベースの携帯電話/タブレットを含む、すべての主要なブラウザーおよびスマートフォンで実行できます。
AngularJSの欠点
AngularJSには多くのメリットがありますが、いくつかの懸念事項があります-
- 安全でない-JavaScriptのみのフレームワークであるため、AngularJSで記述されたアプリケーションは安全ではありません。 サーバー側の認証と承認は、アプリケーションを安全に保つために必要です。
- 分解不可-アプリケーションのユーザーがJavaScriptを無効にした場合、基本ページ以外は何も表示されません。
AngularJSディレクティブ
AngularJSフレームワークは3つの主要な部分に分けることができます-
- ng-app -このディレクティブは、AngularJSアプリケーションを定義してHTMLにリンクします。
- ng-model -このディレクティブは、AngularJSアプリケーションデータの値をHTML入力コントロールにバインドします。
- ng-bind -このディレクティブは、AngularJSアプリケーションデータをHTMLタグにバインドします。