ホームページ > ウェブフロントエンド > Vue.js > Vueドキュメントにおける親子コンポーネントの双方向データバインディング機能の実装方法

Vueドキュメントにおける親子コンポーネントの双方向データバインディング機能の実装方法

WBOY
リリース: 2023-06-20 20:58:23
オリジナル
2279 人が閲覧しました

Vue は、Web インターフェイスを構築するための最新の JavaScript フレームワークであり、そのシンプルさと使いやすさ、優れたパフォーマンス、詳細なドキュメントにより開発者に好まれています。その中でも、親コンポーネントと子コンポーネント間の双方向データ バインディングは、Vue コンポーネント通信の中核機能の 1 つであり、コンポーネントの状態を子コンポーネントに迅速に転送し、子コンポーネントの状態の変化を監視してフィードすることができます。親コンポーネントに戻り、双方向のデータ フローが完了します。この記事では、Vueドキュメントにおける親子コンポーネントの双方向データバインディング機能の実装方法を紹介します。

親コンポーネントと子コンポーネント間でデータを転送するには、props メソッドと $emit メソッドを使用できます。props は Vue のコンポーネント パラメーターであり、親コンポーネントから子コンポーネントにデータを転送するために使用されます。 $emit メソッドは Vue インスタンスであり、子コンポーネントから親コンポーネントにデータを渡すために使用される通信メソッドです。双方向データ バインディングを実装する必要がある場合は、親コンポーネントのプロパティに .v-model 修飾子を追加し、子コンポーネントで入力イベントをトリガーして親コンポーネントの値を更新する必要があります。

以下は、双方向データ バインディングを実装する親子コンポーネントの例です。

// 父组件
<template>
  <div>
    <label>姓名:</label>
    <input v-model="name">
    <ChildComponent v-model="name"></ChildComponent>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      name: ''
    }
  }
}
</script>

// 子组件
<template>
  <div>
    <label>子组件输入:</label>
    <input type="text" :value="value" @input="updateValue($event.target.value)">
  </div>
</template>
<script>
export default {
  props: {
    value: String
  },
  methods: {
    updateValue(value) {
      this.$emit('input', value)
    }
  }
}
</script>
ログイン後にコピー

親コンポーネントで、name という名前の変数を定義し、それを子コンポーネントに渡します。子コンポーネント。子コンポーネントでは、props を使用して親コンポーネントから渡された値を受け取り、v-model 修飾子を使用して双方向データ バインディングを実装し、子コンポーネントの値を親コンポーネントの name 変数にバインドします。 $emit メソッドを使用して入力イベントをトリガーし、子コンポーネントに値を渡します。

props で v-model 修飾子を使用する場合、親コンポーネントから渡された値を受け取るために value 属性を定義するだけでなく、子コンポーネントで value という名前の計算属性も定義する必要があることに注意してください。コンポーネント。子コンポーネントの入力ボックスの値をバインドするために使用されます。入力ボックスの値が変更された場合、updateValue メソッドを使用して入力イベントをトリガーし、子コンポーネントの新しい値を更新のために親コンポーネントに渡します。

v-model 修飾子を使用して双方向データ バインディングを実装することに加えて、Vue はコードを簡素化し、読み書きし、理解しやすくする .sync 修飾子も提供します。親コンポーネントでは、v-model を次のように置き換えます。value.sync:

<template>
  <div>
    <label>姓名:</label>
    <input :value.sync="name">
    <ChildComponent :value.sync="name"></ChildComponent>
  </div>
</template>
ログイン後にコピー

子コンポーネントでは、this.$emit('update:value in the updateValue メソッド ', value) メソッドを使用するだけです。これにより、更新のために子コンポーネントの値を親コンポーネントに渡すことができます。

Vue ドキュメントの親子コンポーネント双方向データ バインディング関数の実装メソッドは、v-model および .sync 修飾子を使用することにより、便利で高速かつ効率的なコンポーネント通信メソッドを提供し、Vue ドキュメントでの実装を容易にします。アプリケーション開発 データの双方向の流れを簡単に実現できます。

以上がVueドキュメントにおける親子コンポーネントの双方向データバインディング機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート