Vue ドキュメントでのコンポーネント値の転送例の分析

WBOY
リリース: 2023-06-20 20:26:04
オリジナル
643 人が閲覧しました

Vue 開発では、コンポーネント間の通信は非常に重要な部分です。データを渡すことにより、コンポーネントの連携が向上し、コンポーネント間のコードの再利用性と構成可能性が向上します。コンポーネント間で値を転送するプロセスでは、Vue の非常に柔軟な性質により、コンポーネント間でデータを転送する方法が数多くあります。

この記事では、Vue での一般的なコンポーネント値の転送メソッドを紹介し、例を通してその使用法を示します。

  1. Props プロパティ値の転送
    Vue では、親コンポーネントは props を通じて子コンポーネントにデータを下方に渡すことができます。子コンポーネントは、props オプションを設定することによって、親コンポーネントによって渡された値を受け取ります。 Props には、プリミティブ型、オブジェクト、配列など、任意の型の値を指定できます。

まず、parent.vue という名前の親コンポーネントを作成します。コードは次のとおりです。

<template>
  <div>
    <h2>父组件</h2>
    <p>我是父组件的信息:{{parentInfo}}</p>
    <child :childInfo="parentInfo"></child>
  </div>
</template>

<script>
import Child from './child.vue'
export default {
  name: 'Parent',
  components: {
    Child
  },
  data() {
    return {
      parentInfo: '我是来自父组件的信息'
    }
  }
}
</script>
ログイン後にコピー

次に、子コンポーネントを作成します。子コンポーネントのコンテンツは次のとおりです。

<template>
  <div>
    <h2>子组件</h2>
    <p>我是子组件的信息: {{childInfo}}</p>
  </div>
</template>

<script>
export default {
  name: 'Child',
  props: ['childInfo']
}
</script>
ログイン後にコピー

親コンポーネントでは、親コンポーネントの情報を子コンポーネントの childInfo 属性に渡すことによってデータを渡します。親コンポーネントでは、親コンポーネントのデータを使用して独自の情報をレンダリングし、それを子コンポーネントにも渡します。

子コンポーネントでは、props オプションを使用して親コンポーネントからデータを受け取ります。子コンポーネントは、childInfo を使用して独自の情報をレンダリングし、childInfo 値は親コンポーネントから取得されます。

上記のコードでは、データを渡すために props を使用し、データを受け取るために子コンポーネントの props を使用します。このようにコンポーネント間で通信を行うことで、コンポーネント間でデータを共有することができ、コンポーネント間のデータの状態を一元的に管理することができます。

  1. $emit メソッドと $on メソッドで値を渡す

Vue では、コンポーネント通信に Emit メソッドと on メソッドを使用することもできます。 Emit メソッドはメッセージの送信に使用され、on メソッドはメッセージの受信に使用されます。このメソッドは通常、親子関係ではないコンポーネント間で使用されます。

まず、event.vue という名前の vue インスタンスを作成します。コードは次のとおりです。

<template>
  <div>
    <h2>组件间事件通信示例</h2>
    <child></child>
    <grand-child></grand-child>
  </div>
</template>

<script>
import Vue from 'vue'
import Child from './child.vue'
import GrandChild from './grandChild.vue'

export default {
  name: 'Event',
  components: {
    Child,
    GrandChild
  },
  created() {
    //使用$on监听来自子组件的事件
    this.$on('sendMsg', function(message) {
      console.log('父组件接收到来自子组件的消息:' + message)
    })
  }
}
</script>
ログイン後にコピー

親コンポーネントの $on メソッドを通じてイベントの到着をリッスンします。受信後 イベント後にメッセージを印刷します。具体的な使い方は作成した宣言サイクルフック関数に実装します。

次に、サブコンポーネントのコード実装を見てみましょう:

<template>
  <div>
    <h3>子组件</h3>
    <button @click="handleClick">发送消息</button>
  </div>
</template>

<script>
export default {
  name: 'Child',
  methods: {
    handleClick() {
      //使用$emit发送事件
      this.$emit('sendMsg', '我是来自子组件的信息')
    }
  }
}
</script>
ログイン後にコピー

このように、サブコンポーネント内でボタンをクリックすると、$emit メソッドがトリガーされ、イベント名 " sendMsg" は、親コンポーネントへの送信に使用されます。コンポーネントは、「私は子コンポーネントからのメッセージです」というメッセージを送信します。親コンポーネントは、$on メソッドを通じてイベントの到着をリッスンし、対応する操作を完了できます。

同様に、親子関係ではない 2 つのコンポーネント間の通信も実装できます。この方法では、コンポーネントのトリガー イベントとリッスン イベントが疎結合になります。 Emit メソッドと on メソッドを使用することにより、より柔軟なコンポーネント通信を実現できます。

要約すると、コンポーネント間の通信も Vue 開発の非常に重要な部分です。さまざまな値の受け渡し方法に習熟することが、コンポーネント作成の基礎となります。この記事では、具体的なコード例を通じて、Vue での 2 つの一般的な値渡しメソッド、props 値渡しと $emit/$on 値渡しを紹介します。これらの方法により、コンポーネント間の通信を効果的に調整し、コードの再利用性と構成可能性を向上させることができます。

以上がVue ドキュメントでのコンポーネント値の転送例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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