KnockoutJSの学習とアプリケーション

KnockoutJSの学習とアプリケーション

KnockoutJSの最初の理解

KnockoutJsは、Web開発(モデル、ビュー、ビューモデル)のためのMVVMフレームワークです。


余談:
MvvmはModel-View-ViewModelの略です。それはモデルビュービューモデルです。
[モデル]は、バックエンドによって送信されるデータを指します。
[表示]は、表示されているページを指します。
[ビューモデル]はmvvmモードのコアであり、ビューとモデルを接続するブリッジです。これには2つの方向があります。1つは[モデル]を[ビュー]に変換することです。つまり、バックエンドによって送信されたデータを表示されたページに変換します。これを実現する方法は、データバインディングです。2つ目は、[ビュー]を[モデル]に変換することです。つまり、表示されるページをバックエンドデータに変換します。これを達成する方法は次のとおりです。DOMイベントの監視。これらの2つの方向が実現されます。これを双方向データバインディングと呼びます。
概要:ビューとモデルは、MVVMのフレームワークでは直接通信できません。ViewModelを介して通信します。ViewModelは通常、オブザーバーを実装します。データが変更されると、ViewModelはデータのこの変更を監視し、対応するビューに自動的に更新するよう通知できます。ユーザーがビューを操作すると、ViewModelもリッスンできますビューが変更され、データを変更するよう通知すると、実際にはデータの双方向バインディングが実現します。また、MVVMのViewとViewModelは相互に通信できます。MVVMのフローチャートは次のとおりです。
u = 32561255,2826043542&fm = 173&app = 25&f = JPEG.jpg


KnockoutJSの利点:

  • ビジネスロジックコードとページ表示コードが分離されているため、フロントエンドプロジェクトが改善され、保守しやすくなっています。
  • フォームデータをより便利にカプセル化、エコー、検証できます
  • 純粋なJavasriptライブラリを使用し、任意のフレームワークと統合できます。jQueryライブラリの代わりにはなりません。
  • KnockoutJSライブラリは、複雑なデータ駆動型インターフェースを処理するシンプルで直接的な方法を提供します

KnockoutJS特性:

  • 宣言的バインディング:非常に単純な構文を使用して、データバインディング属性を介してHTML DOM要素をモデルに接続し、応答性の実装を非常に簡単にします。
  • UIの自動更新:ビューモデルデータへの変更は、すぐに自動的にUIに反映されます。逆の場合も、追加のコード処理は必要ありません。
  • 依存関係の追跡: KO属性とKOライブラリメソッド/属性の関係は透過的です。KOのデータ属性の変更を自動的に追跡し、関連する影響を受ける領域を更新します
  • テンプレート:テンプレートは、複雑なUI構造を作成するためのシンプルで便利な方法であり、ネストされた領域が繰り返されます(モデルデータの表示に似ています)。
  • スケーラビリティ:カスタム動作の拡張が非常に簡単


KnockoutJS構文

簡単な例

<script src="/js/knockout-3.4.2.js"></script> 核心
<script src="/js/knockout.validation.min.js"></script> 校验
<input data-bind="value: userName,valueUpdate: 'change'"/>
var viewModel = { userName: ko.observable("") };//声明
ko.applyBindings(viewModel);//在KnockoutJS中激活这个属性

データバインドの紹介

"value:username"
"valueUpdate: 'change'"カスタムイベント表すためにusernameという名前のフィールドをバインドすることを
指します。valueUpdateパラメータが使用されている場合、KOはデフォルトイベントの代わりにカスタムイベントを使用します。

ko.applyBindings()の紹介

ko.applyBindings(obj,[node])2つのパラメーターを受け取ります。最初のパラメーターは作成されたオブジェクトで、2番目のパラメーターはバインドされるHTML要素またはコンテナーを設定します。同じコンテナー内で実行できるアクティブ化は1つだけです

ko.observable()の紹介

<input data-bind="value: personName">
var myViewModel = {personName: ko.observable()};

入力の値が変更されると、値はpersonNameに同時に割り当てられ、myViewModel.personName()を介してmyViewModelオブジェクトで表示できます。


koによってバインドできます:

  • テキストと外観を制御する
  • 制御フロー
  • フォームフィールドを使用する
  • レンダリングテンプレート

公式アドレス:http://knockoutjs.com/
中国語APIドキュメント:http://www.aizhengli.com/knockoutjs/knockoutjs.html
著作権声明:記事のコンテンツはインターネット上で要約されています。元の作者の権利が侵害されている場合は、私に連絡してください課題を削除または承認する

おすすめ

転載: blog.csdn.net/qq845484236/article/details/103870985