Vue コンポーネント通信: プロパティ バインディング通信には v-bind ディレクティブを使用します
Vue では、コンポーネントは Web アプリケーション構築の重要な部分です。そして、コンポーネント間の通信は非常に重要なトピックです。 Vue は、コンポーネント間の通信を実装するさまざまな方法を提供します。重要な方法の 1 つは、プロパティ バインディング通信に v-bind ディレクティブを使用することです。
v-bind ディレクティブを使用すると、親コンポーネントの子コンポーネントにデータを渡し、子コンポーネントの props 属性を通じてこのデータを受け取ることができます。このようにして、親コンポーネントと子コンポーネントの間でデータを転送および共有できます。
親コンポーネント App と子コンポーネント Child があり、親コンポーネントでプロパティを定義し、それを子コンポーネントに渡したいとします。
まず、親コンポーネント App でデータ属性メッセージを定義します。
<template> <div> <h1>父组件</h1> <input type="text" v-model="message"> <child-component :text="message"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'App', components: { ChildComponent }, data() { return { message: '' }; } }; </script>
子コンポーネント Child では、props 属性を通じて渡された属性を受け取り、テンプレートに表示できます。
<template> <div> <h2>子组件</h2> <p>{{ text }}</p> </div> </template> <script> export default { name: 'ChildComponent', props: { text: { type: String, required: true } } }; </script>
上記のコードでは、v-bind ディレクティブを通じて、親コンポーネントの message 属性を子コンポーネントの text 属性に渡します。サブコンポーネントは、props 属性を通じて、受け取った属性タイプと必要な要件を定義します。次に、サブコンポーネントのテンプレートで、{{ text }} を使用して、受け取った属性値を表示できます。
親コンポーネントに情報を入力すると、子コンポーネントはリアルタイムで表示を更新します。これは、親コンポーネントのデータが変更され、v-bind ディレクティブが子コンポーネントの再レンダリングをトリガーし、最新のプロパティ値を子コンポーネントに渡すためです。
一方向の属性バインディングに加えて、双方向バインディングに v-bind ディレクティブを使用することもできます。これにより、子コンポーネントが親コンポーネントのプロパティ値を変更できるようになります。子コンポーネントでは、v-model ディレクティブを使用してローカル データをバインドし、$emit メソッドを通じてカスタム イベントをトリガーして、プロパティ値の変更を親コンポーネントに通知できます。
以下は双方向バインディングの例です:
<template> <div> <h1>父组件</h1> <input type="text" v-model="message"> <child-component v-bind:text="message" @input="message = $event"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { name: 'App', components: { ChildComponent }, data() { return { message: '' }; } }; </script>
<template> <div> <h2>子组件</h2> <input type="text" v-model="text" @input="$emit('input', text)"> </div> </template> <script> export default { name: 'ChildComponent', props: { text: { type: String, required: true } }, data() { return { text: this.text }; } }; </script>
上記のコードでは、親コンポーネントの message 属性が v-bind ディレクティブを通じて子コンポーネントに渡されます。サブコンポーネントでは、受け取った属性が v-model ディレクティブを通じてローカル テキスト属性にバインドされ、入力ボックスで双方向のバインドが実行されます。入力ボックスの値が変更されると、子コンポーネントは $emit メソッドを通じて入力イベントをトリガーし、現在のテキスト属性値をパラメータとして親コンポーネントに渡します。親コンポーネントは @input を通じてカスタム イベントをリッスンし、イベント ハンドラーのメッセージ属性の値を更新します。
v-bind ディレクティブを介したプロパティ バインディング通信により、Vue コンポーネント間でデータを簡単に共有できます。これは非常に重要で、Vue で一般的に使用されるコンポーネント通信方法です。実際の開発では、特定のニーズやシナリオに応じて適切な通信方法を選択し、コンポーネント間の対話とデータ共有を実現できます。
以上がVue コンポーネント通信: プロパティ バインディング通信には v-bind ディレクティブを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。