ホームページ ウェブフロントエンド Vue.js Vue コンポーネントの通信方法とその実践方法

Vue コンポーネントの通信方法とその実践方法

Oct 15, 2023 pm 01:25 PM
props イベントバス vueコンポーネント通信

Vue コンポーネントの通信方法とその実践方法

Vue コンポーネントの通信方法とその実践方法

Vue の開発において、コンポーネントの通信は非常に重要な概念です。これにより、複雑なアプリケーションを複数の独立したコンポーネントに分割し、コンポーネント間の対話をより柔軟かつ効率的に行うことができます。 Vue はコンポーネント間のさまざまな通信方法を提供しており、実際のニーズに応じてコンポーネント間のデータ転送や対話に適切な方法を選択できます。この記事では、Vue コンポーネント通信の一般的な方法をいくつか紹介し、対応するコード例を示します。

1. プロップとイベント
プロップとイベントは、Vue で最も基本的で一般的に使用されるコンポーネント通信メソッドです。 Props を通じて、親コンポーネントは子コンポーネントにデータを渡すことができ、イベントを通じて、子コンポーネントは親コンポーネントにメッセージを送信できます。

  1. Props はデータを渡します
    親コンポーネントは props 属性を通じて子コンポーネントにデータを渡し、子コンポーネントは props オプションを通じてデータを受け取ります。

コード例:

// 父组件
<template>
  <div>
    <child-component :message="parentMessage"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue'

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentMessage: 'Hello from parent component!'
    }
  }
}
</script>

// 子组件
<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  props: {
    message: String
  }
}
</script>
ログイン後にコピー

この例では、親コンポーネントは :message="parentMessage" を介して parentMessage を子に渡します。コンポーネント。プロパティを通じてサブコンポーネントによって受信されるデータ型を定義します。

  1. イベントはメッセージを送信します
    子コンポーネントは、$emit メソッドを通じて親コンポーネントにメッセージを送信します。親コンポーネントは、子コンポーネントのタグにイベント リスナーを追加することでメッセージを受信します。

コード例:

// 父组件
<template>
  <div>
    <child-component @message="handleMessage"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue'

export default {
  components: {
    ChildComponent
  },
  methods: {
    handleMessage(message) {
      console.log(message)
    }
  }
}
</script>

// 子组件
<template>
  <button @click="sendMessage">Send Message</button>
</template>

<script>
export default {
  methods: {
    sendMessage() {
      this.$emit('message', 'Hello from child component!')
    }
  }
}
</script>
ログイン後にコピー

この例では、子コンポーネントは this.$emit('message', 'Hello from childComponent!') を渡します。メッセージを送信するには、親コンポーネントは @message を通じて子コンポーネントのメッセージをリッスンし、handleMessage メソッドで処理します。

2. Vuex
Vuex は Vue の公式状態管理ライブラリであり、アプリケーションの状態を一元管理する方法を提供し、コンポーネント間でのデータ共有の問題を解決するために使用されます。

次は、コンポーネント通信に Vuex を使用する基本的な手順です。

  1. Vuex ストア オブジェクトを作成します。
  2. ストア オブジェクトで状態を定義します。これはアプリケーションの状態です。
  3. ゲッターを使用して、状態値を取得および計算するための派生状態を定義します。
  4. ミューテーションを使用して、状態の値を変更するためのいくつかの同期操作を定義します。
  5. アクションを使用して非同期操作を定義し、複雑なビジネス ロジックを処理します。
  6. コンポーネント内で this.$store.state を使用して状態の値を取得します。

コード例:
以下は、単純な Vuex アプリケーションの例です。アプリケーションにカウンターがあり、ボタンをクリックするとカウンターの値が増加し、コンポーネントに表示されるとします。

// store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  },
  actions: {
    incrementCount({ commit }) {
      commit('increment')
    }
  }
})
ログイン後にコピー
// Counter.vue
<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="incrementCount">Increment</button>
  </div>
</template>

<script>
export default {
  computed: {
    count() {
      return this.$store.state.count
    }
  },
  methods: {
    incrementCount() {
      this.$store.dispatch('incrementCount')
    }
  }
}
</script>
ログイン後にコピー

この例では、count という名前の状態と、increment という名前の突然変異を定義します。コンポーネントでは、this.$store.state.count を使用して count の値を取得し、ボタンがクリックされたときに this.$store.dispatch('incrementCount') を介して incrementCount を呼び出します。 ### アクション。

3. イベント バス

イベント バスは、Vue インスタンスを中心的なイベント バスとして使用する、シンプルだが強力なコンポーネント通信方法です。任意のコンポーネントでカスタム イベントをリッスンし、他のコンポーネントで対応するイベントをトリガーできます。

イベント バスを使用したコンポーネント通信の基本的な手順は次のとおりです:

    イベント バス インスタンスを作成します:
  1. constbus = new Vue()
  2. カスタム イベントをリッスンするには、イベント リスニング コンポーネントの
  3. bus.$on メソッドを使用します。
  4. イベントをトリガーするコンポーネントの
  5. bus.$emit メソッドを使用して、カスタム イベントをトリガーします。
コード例:

// Counter.vue
<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="incrementCount">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  methods: {
    incrementCount() {
      this.count++
      this.$bus.$emit('count-updated', this.count)
    }
  },
  created() {
    this.$bus.$on('count-updated', (count) => {
      this.count = count
    })
  }
}
</script>

// main.js
import Vue from 'vue'

Vue.prototype.$bus = new Vue()

new Vue({
  render: h => h(App),
}).$mount('#app')
ログイン後にコピー
この例では、Counter コンポーネントに count という名前のデータを作成し、ボタンをクリックして count の値を増加させます。 count をインクリメントするときに、

this.$bus.$emit('count-updated', this.count) を使用して count-updated イベントをトリガーします。 Counter コンポーネントの作成されたフック関数では、this.$bus.$on メソッドを使用して count-updated イベントをリッスンし、コールバック関数の count の値を更新します。

概要:

この記事では、Vue で一般的に使用されるコンポーネント通信メソッドをいくつか紹介し、対応するコード例を示します。 Props と Event は、最も基本的で一般的に使用されるコンポーネント通信方法であり、親コンポーネントと子コンポーネント間のデータ転送とメッセージ送信に適しています。 Vuex は、アプリケーションの状態を管理するために使用される状態管理ライブラリであり、複数のコンポーネント間で状態を共有する状況に適しています。イベント バスは、任意のコンポーネント間でのメッセージの受け渡しを実現できる、シンプルかつ強力なコンポーネント通信方法です。実際のニーズに応じて、適切なコンポーネント通信方法を選択して、異なるコンポーネント間の相互作用のニーズを満たすことができます。同時に、より複雑なシナリオでは、プロバイド/インジェクトなどの他の高度なコンポーネント通信メソッドの使用が必要になる場合があります。実際の開発プロセスでは、特定のニーズに応じてこれらのコンポーネント通信方法を柔軟に使用することで、より効率的かつ柔軟なコンポーネントの相互作用を実現できます。

以上がVue コンポーネントの通信方法とその実践方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vue3 でプロップとエミットを使用し、そのタイプとデフォルト値を指定する方法 vue3 でプロップとエミットを使用し、そのタイプとデフォルト値を指定する方法 May 19, 2023 pm 05:21 PM

defineProps の使用defineProps を使用するときに導入する必要はなく、デフォルトでグローバル メソッドになります。によって開発された vue3 プロジェクトで constprops=defineProps({attr1:{type:String,//S は大文字にする必要がありますdefault:"",},attr2:Boolean,attr3:{type:Number,required:true,},} を使用します) js ); js 環境での使用法は、オプションの API が結合 API に置き換えられることを除いて、vue2 の使用法と似ています。定義された props タイプとデフォルト値はどちらも、vue3 で使用される vue2 タイプと同じです。

Vue3 でプロップとエミットを使用する方法 Vue3 でプロップとエミットを使用する方法 May 26, 2023 pm 06:13 PM

機能: 親コンポーネントは props を通じて子コンポーネントにデータを渡します; 目的: あるタイプのコンポーネントを複数回使用する必要がある場合、各呼び出しは特定の場所でのみ異なります (記入する必要がある個人プロフィール フォームと同様)人によって情報は異なりますが、構造は同じです。使用法 1 (型を指定せずに単純に受け入れる): 親コンポーネントにサブコンポーネントを導入し、サブコンポーネントの label 属性を通じてパラメータを渡し、受信して使用するサブコンポーネントに props オプションを定義します。サブコンポーネントに props を追加します。他の場所は上記で事前に定義されています。渡された年齢が文字列型であることがわかります。渡された値を自動的に 1 ずつ増やしたい場合は、サブコンポーネントを使用するときに 1 を追加することはできません。下図のように文字列になります。

Vue エラーの解決方法: データを渡すために props を使用できません Vue エラーの解決方法: データを渡すために props を使用できません Aug 17, 2023 am 10:06 AM

Vue エラーの解決方法: データを渡すために props を使用できません はじめに: Vue の開発プロセスでは、props を使用して親コンポーネントと子コンポーネント間でデータを転送することが非常に一般的です。ただし、場合によっては、小道具を使用してデータを渡すときにエラーが発生するという問題が発生することがあります。この記事では、Vue でデータを渡すために props を使用できないというエラーを解決する方法に焦点を当てます。問題の説明: Vue 開発で、親コンポーネントで props を使用して子コンポーネントにデータを渡すとき、

Vueのイベントバスを介したコンポーネント間の通信を実装する方法 Vueのイベントバスを介したコンポーネント間の通信を実装する方法 Oct 15, 2023 am 08:30 AM

Vue でイベント バスを介したコンポーネント間の通信を実装する方法には、特定のコード サンプルが必要です。イベント バスは、Vue の一般的なコンポーネント通信メカニズムです。これにより、親と子を明示的に導入することなく、異なるコンポーネント間の簡潔かつ柔軟な通信が可能になります。コンポーネントの関係または状態の使用Vuex などの管理ライブラリ。この記事では、Vue のイベント バスを介したコンポーネント間の通信を実装する方法を紹介し、具体的なコード例を示します。イベントバスとは何ですか?イベント バスは、コンポーネント間でメッセージを渡すためのメカニズムです。 Vue では、V を使用できます。

Vue のイベント バスとは何ですか?またその使用方法は何ですか? Vue のイベント バスとは何ですか?またその使用方法は何ですか? Jun 11, 2023 pm 07:39 PM

Vue は非常に人気のある JavaScript フレームワークで、応答性の高いデータ バインディングとコンポーネント化のアイデアを備えた複雑なインタラクティブ インターフェイスの構築に役立ちます。 Vue では、コンポーネント間でデータを転送してイベントをトリガーする必要がよくありますが、イベント バスは非常に便利なソリューションです。 1. イベントバスとは何ですか?イベント バスは、さまざまなコンポーネント間の通信を可能にし、コンポーネント間でのイベント配信とデータ共有を可能にする中央イベント マネージャーです。 Vue では、次のように渡すことができます。

VUE3 基本チュートリアル: Vue.js 応答フレームワークを使用して計算されたプロパティ VUE3 基本チュートリアル: Vue.js 応答フレームワークを使用して計算されたプロパティ Jun 15, 2023 pm 08:44 PM

Vue.js は、応答性の高いシステムを備えた Web アプリケーションを構築するための人気のある JavaScript フレームワークです。 Vue.js は、開発プロセスを簡素化するための使いやすいディレクティブとコンポーネントのセットを提供します。この記事では、props と computed という重要な概念を学びます。 Props は、Vue.js コンポーネントで情報を渡す方法です。これにより、親コンポーネントから子コンポーネントにデータを渡すことができます。子コンポーネントでは、渡されたデータをバインドと処理に使用できます。

Vue3 で SetUp 関数の props と context パラメーターを使用する方法 Vue3 で SetUp 関数の props と context パラメーターを使用する方法 May 22, 2023 pm 09:49 PM

1. setUp 関数の最初のパラメーター propssetup (props, context) {} 最初のパラメーター props: props は、親コンポーネントから子コンポーネントに渡されるすべてのデータを含むオブジェクトです。子コンポーネントで props を使用して受信します。設定で宣言され渡されたすべてのプロパティを含むオブジェクト。つまり、親コンポーネントから props を通じて子コンポーネントに渡された値を出力したい場合。構成を受信するには props を使用する必要があります。つまり、props:{......} Props を介して構成を受け入れない場合、出力値は未定義の親コンポーネント importNoContfrom"../componen になります。

Vue コンポーネント通信: 親子コンポーネント通信に props を使用する Vue コンポーネント通信: 親子コンポーネント通信に props を使用する Jul 07, 2023 pm 10:06 PM

Vue コンポーネント通信: 親子コンポーネント通信に props を使用する Vue 開発において、コンポーネント通信は非常に重要な概念です。あるコンポーネントから別のコンポーネントにデータを渡す必要がある場合、親子コンポーネントの通信に Vue の props プロパティを使用できます。この記事では、コンポーネント間の通信に props 属性を使用する方法を紹介し、いくつかのコード例を示します。 1. props 属性とは何ですか? Props は Vue の重要な属性であり、親コンポーネントから子コンポーネントに渡されるデータを受け取るために使用されます。親コンポーネント

See all articles