javascript - Vue の依存関係追跡は一方向のデータ バインディングですか、それとも双方向のバインディングですか?
大家讲道理
大家讲道理 2017-07-05 10:53:36
0
1
733

公式 Web サイトのドキュメントで述べられているように、Vue のv-modelディレクティブはデータの双方向バインディングを実装します。

https://vuejs.org/v2/guide/fo...

ただし、実際の開発では、コンポーネントのデータ フローは一方向であり、サブコンポーネントが親コンポーネントの props を変更することはお勧めできません。

そこで問題は、Vue の依存関係追跡は [原則として双方向バインディングをサポートしますが、開発の便宜のために一方向のデータ フローのみを推奨する] のか、それとも [原則として双方向バインディングをサポートしません。 v-modelについてですが、これは DOM イベントをリッスンすることで実装された単なる構文シュガーです。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信 (1)
大家讲道理

Vue の依存関係追跡は [原則として、双方向バインディングはサポートされておらず、v-model は DOM イベントをリッスンすることによって実装された単なる構文糖です]

Vue の依存関係追跡は、Object.defineProperty を通じてデータ オブジェクトのすべてのプロパティをゲッター/セッターに変換することによって実装されます。データの特定のプロパティ値が変更されると、set 関数がトリガーされ、プロパティ値が取得されると、 get 関数がトリガーされ、この機能により、データが変更されたときにビューが変更されます。つまり、ビューの変更は、データが操作されたときにのみトリガーされます。 DOM イベントを通じてのみ変更でき、その後ビューを変更できます。これは双方向バインディングを実現するために使用されます

一般的なプロセスは次のとおりです

リーリー

双方向バインディングは、同じコンポーネント内でデータとビューをバインドすることであり、親コンポーネントと子コンポーネント間の通信とは何の関係もありません。
コンポーネント間の通信は、コンポーネント間の理解を容易にするために一方向のデータ フローを使用します。開発では、親コンポーネントの特定のデータに依存するサブコンポーネントが複数存在する場合があります。サブコンポーネントが親コンポーネントのデータを変更できる場合、サブコンポーネントを変更すると、依存するすべてのサブコンポーネントが変更されます。このデータでは、Vue はサブコンポーネントを推奨しません。コンポーネントが親コンポーネントのデータを変更する場合、props を直接変更すると警告がスローされます

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!