公式 Web サイトのドキュメントで述べられているように、Vue の v-model
ディレクティブはデータの 双方向バインディングを実装します。
https://vuejs.org/v2/guide/fo...
ただし、実際の開発では、コンポーネントのデータ フローは一方向であり、サブコンポーネントが親コンポーネントの props を変更することはお勧めできません。
そこで問題は、Vue の依存関係追跡は [原則として双方向バインディングをサポートしますが、開発の便宜のために一方向のデータ フローのみを推奨する] のか、それとも [原則として双方向バインディングをサポートしません。 v-model についてですが、これは DOM イベントをリッスンすることで実装された単なる構文シュガーです。
Vue の依存関係追跡は [原則として、双方向バインディングはサポートされておらず、v-model は DOM イベントをリッスンすることによって実装された単なる構文糖です]
Vue の依存関係追跡は、Object.defineProperty を通じてデータ オブジェクトのすべてのプロパティをゲッター/セッターに変換することによって実装されます。データの特定のプロパティ値が変更されると、set 関数がトリガーされ、プロパティ値が取得されると、 get 関数がトリガーされ、この機能により、データが変更されたときにビューが変更されます。つまり、ビューの変更は、データが操作されたときにのみトリガーされます。 DOM イベントを通じてのみ変更でき、その後ビューを変更できます。これは双方向バインディングを実現するために使用されます
。一般的なプロセスは次のとおりです
リーリー双方向バインディングは、同じコンポーネント内でデータとビューをバインドすることであり、親コンポーネントと子コンポーネント間の通信とは何の関係もありません。
。コンポーネント間の通信は、コンポーネント間の理解を容易にするために一方向のデータ フローを使用します。開発では、親コンポーネントの特定のデータに依存するサブコンポーネントが複数存在する場合があります。サブコンポーネントが親コンポーネントのデータを変更できる場合、サブコンポーネントを変更すると、依存するすべてのサブコンポーネントが変更されます。このデータでは、Vue はサブコンポーネントを推奨しません。コンポーネントが親コンポーネントのデータを変更する場合、props を直接変更すると警告がスローされます