ホームページ ウェブフロントエンド フロントエンドQ&A vuejs データドライバーを理解する方法

vuejs データドライバーを理解する方法

Sep 24, 2021 pm 04:55 PM
vue データ駆動型

vuejs におけるデータドリブンとは、データが変更されるとそれに応じてユーザー インターフェイスが変更され、開発者が DOM を手動で変更する必要がないことを意味します。簡単に言えば、データの変更を制御することで DOM を変更します。データの変更に応じてビュー (DOM) のコンテンツを変更できるようにします。

vuejs データドライバーを理解する方法

このチュートリアルの動作環境: Windows 7 システム、vue バージョン 2.9.6、DELL G3 コンピューター。

1: Vue とは何か、Vue を理解する方法

Vue は、MVVM モードのデータ駆動型ページに基づいたフレームワークであり、データが表示されます。シングルページアプリケーションを実現する技術です。

いくつかの主要な機能の要約:

  • シンプル

  • 軽量

  • 高速

  • #データドリブン

  • モジュールフレンドリー

  • # コンポーネントベース
  • Vue はデータ駆動型の双方向バインディングを利用して、ページの開発を容易にします。開発者は DOM を手動で変更する必要はありません。 Vue は双方向のデータ バインディングを使用してすべてを簡単にします。データ駆動型の双方向バインディングは、Object.defineProperty() で定義されたデータ セットおよび取得関数の原則を通じて実装されます。

2. コンポーネントベースの開発により、プロジェクトのスケーラビリティと移植性が向上し、コードの再利用性が向上します。

3. シングルページのアプリケーション エクスペリエンス。ローカル コンポーネントはインターフェイスを更新して、ユーザー エクスペリエンスを高速化し、時間を節約します。

シングルページ アプリケーション (SPA とも呼ばれます) は、すべてのアクティビティを Web ページに制限し、Web ページの初期化時に対応する HTML、JavaScript、および CSS のみを読み込みます。読み込みが完了すると、ページはリロードしたりジャンプしたりしません。内部のコンポーネントまたはモジュールのみが対話して、ハッシュまたは履歴 API を介してジャンプし、ajax を介してデータを取得して応答関数を実装します。アプリケーション全体は単なる 1 つの HTML であるため、はシングルページと呼ばれます!

4. js コードは目に見えない形で標準化されており、チームワークで開発されたコードは読みやすくなっています。

2: Vue データ駆動型 (双方向データ バインディング) の原理は何ですか?

データドリブンとは

データドリブンは vue.js の最大の機能です。 vue.js におけるいわゆるデータドリブンとは、データが変更されると、それに応じてユーザー インターフェイスが変更され、開発者が手動で DOM を変更する必要がないことを意味します。

たとえば、ボタンをクリックすると、要素のテキストを「はい」と「いいえ」の間で切り替える必要があります。 jquery ではページを変更する際、ボタンにイベントをバインドし、コピーに対応する要素 dom オブジェクトを取得し、スイッチに応じて dom オブジェクトのコピー値を変更するという流れが一般的です。

では、vuejs はどのようにしてこのデータ ドライブを実現するのでしょうか?

Vue は、主にパブリッシャー/サブスクライバー モデルと組み合わせたデータ ハイジャックを使用し、データ変更時に Object.defineProperty() を使用して各プロパティのセッターとゲッターをハイジャックすることにより、双方向のデータ バインディングを実装します。メッセージをサブスクライバーにパブリッシュし、対応するリスニング コールバックをトリガーします。プレーンな Javascript オブジェクトをデータ オプションとして Vue インスタンスに渡すと、Vue はそのプロパティを反復処理し、Object.defineProperty を使用してプロパティをゲッター/セッターに変換します。ゲッター/セッターはユーザーには表示されませんが、内部的には Vue が依存関係を追跡し、プロパティがアクセスされ変更されたときに変更を通知することができます。

Vue の双方向データ バインディングは、Observer、Compile、Watcher を統合するデータ バインディングの入り口として MVVM を使用します。Observer を使用して独自のモデルのデータ変更を監視し、Compile を使用してテンプレート命令を解析およびコンパイルします。 (vue は {

{}} の解析に使用されます)、最後にウォッチャーを使用してオブザーバーとコンパイル間の通信ブリッジを構築し、データ変更を実現します -> 更新を表示します; インタラクティブな変更 (入力) を表示します -> 両方のデータ モデルの変更を実現します方向性バインディング効果。

ゲッター/セッターについて理解していますか?

Vue インスタンスの下のデータ オブジェクトの属性を出力する場合、各属性には 2 つの対応する get メソッドと set メソッドがあります。名前が示すとおり、get は値の取得を目的とし、set は割り当てを目的とします。通常の状況では、 take 値と代入は obj.prop を使用して行われますが、これには問題があります。オブジェクトの値が変更されたことをどのように確認すればよいでしょうか?ということで、セットの出番です。 get と set は関数として理解できます。オブジェクトのプロパティを呼び出すときは、get.property(){...} と入力して、まずオブジェクトにこのプロパティがあるかどうかを確認します。ない場合は、name 属性を追加して、それに値を割り当てます。name 属性がある場合は、name 属性を返します。 get は値を受け取る関数と考えることができ、関数の戻り値は関数が取得した値です。もっと重要だと思うのは set 属性です インスタンスに値を代入する場合: このとき set name(val){...} となります; 仮パラメータ val は name 属性に代入した値です. この機能では、たくさんのことができます 双方向バインディングなど、いろいろ変わりました!この値の変更はすべて set を通過する必要があるため、ユニバーサル リスナーに相当する他のメソッドでは変更できません。 ES5 オブジェクト プロトタイプには、get と set をオブジェクトにバインドするために特別に使用される 2 つの新しい属性 __defineGetter__ と __defineSetter__ があります。以下の方法はプロトタイプに記述されており、継承して再利用できるのでおすすめです。

3: MVVM フレームワーク

Vue.js のデータ ドライバーは、MVVM フレームワークを通じて実装されます。 MVVM フレームワークには主に、モデル、ビュー、ビューモデルの 3 つの部分が含まれています。

  • Model: データ部分を指します。JavaScript オブジェクトのフロントエンドに相当します。

  • View: ビューを指します。 dom

  • Viewmodel のフロントエンドに相当する部分: ビューとデータを接続するミドルウェア通信です

データ (Model) とビュー (View) は直接通信することはできませんが、両者間の通信は ViewModel を通じて実現する必要があります。データが変更されると、viewModel はその変更を監視し、タイムリーに変更を行うようにビューに通知できます。同様に、ページ上でイベントがトリガーされると、viewMODEl はイベントをリッスンし、モデルに応答するよう通知することもできます。 Viewmodel はオブザーバーに相当し、双方のアクションを監視し、対応する操作を実行するよう相手に適時に通知します。

関連する推奨事項:「vue.js チュートリアル

以上がvuejs データドライバーを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes< router-link to ="/" Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

Vueのバージョンを照会する方法 Vueのバージョンを照会する方法 Apr 07, 2025 pm 11:24 PM

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 < script>でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

VueのDivにジャンプする方法 VueのDivにジャンプする方法 Apr 08, 2025 am 09:18 AM

VUEにDIV要素をジャンプするには、VUEルーターを使用してルーターリンクコンポーネントを追加するには、2つの方法があります。 @clickイベントリスナーを追加して、これを呼び出します。$ router.push()メソッドをジャンプします。

See all articles