ホームページ ウェブフロントエンド Vue.js Vue コンポーネント通信におけるプログラミングのヒントと注意事項

Vue コンポーネント通信におけるプログラミングのヒントと注意事項

Jul 18, 2023 pm 08:02 PM
予防 プログラミングスキル vueコンポーネント通信

Vue コンポーネント通信のプログラミングのヒントと注意事項

Vue.js は人気のある JavaScript フレームワークです。そのシンプルさ、使いやすさ、強力なデータ バインディング機能により、ますます多くの開発者がそれを選択しています。Vue を使用して、フロントエンドアプリケーションを開発します。 Vue の開発プロセスにおいて、コンポーネントの通信は非常に重要なトピックです。コンポーネント間通信を適切に行うと、開発効率が向上し、コードの保守性が向上します。この記事では、Vue コンポーネント間通信におけるプログラミング スキルと注意点を紹介します。

1. 親子コンポーネントの通信
Vue では、親子コンポーネントの通信が最も一般的な方法です。親コンポーネントは props を通じて子コンポーネントにデータを渡し、子コンポーネントはイベントを通じて親コンポーネントにデータを渡します。

1. プロパティを使用してデータを渡す

親コンポーネントは、プロパティを介して子コンポーネントにデータを渡すことができます。子コンポーネントは、親コンポーネントから渡されたデータを受信し、レンダリングやその他の操作を実行できます。

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

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

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      message: 'Hello Vue!'
    }
  }
}
</script>

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

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

上記のコードでは、親コンポーネントは props を通じて message を子コンポーネントに渡し、子コンポーネントは props オプションを使用して受け取ったプロパティを宣言します。

2. イベントを使用してデータを渡す

子コンポーネントは、$emit メソッドを通じてカスタム イベントをトリガーし、データを親コンポーネントに渡すことができます。親コンポーネントは、v-on を通じて子コンポーネントによってトリガーされたイベントをリッスンし、渡されたデータを取得できます。

// 子组件
<template>
  <button @click="handleClick">点击我触发事件</button>
</template>

<script>
export default {
  methods: {
    handleClick() {
      this.$emit('my-event', 'Hello Parent!')
    }
  }
}
</script>

// 父组件
<template>
  <div>
    <child-component @my-event="handleEvent" />
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  methods: {
    handleEvent(message) {
      console.log(message)
    }
  }
}
</script>
ログイン後にコピー

上記のコードでは、子コンポーネントは this.$emit メソッドを通じて my-event イベントをトリガーし、データ 'Hello Parent を送信します。 !' 親コンポーネントに渡されます。親コンポーネントは、v-on を使用して my-event イベントをリッスンし、対応するメソッドを呼び出してイベントを処理します。

2. 非親子コンポーネント通信
親子コンポーネント通信に加えて、場合によっては、非親子コンポーネント間の通信も必要になります。一般的に使用される方法には、Vue インスタンスを中央イベント バスとして使用する方法や、状態管理に Vuex を使用する方法が含まれます。

1. Vue インスタンスを中央イベント バスとして使用する

Vue インスタンスを中央イベント バスとして作成できます。サブコンポーネントはこのインスタンスを通じてイベントをトリガーし、他のコンポーネントはリッスンすることでデータを受信します。イベント。

// EventBus.js
import Vue from 'vue';
export const EventBus = new Vue();

// 子组件A
<template>
  <button @click="handleClick">点击我触发事件</button>
</template>

<script>
import { EventBus } from './EventBus.js';

export default {
  methods: {
    handleClick() {
      EventBus.$emit('my-event', 'Hello!')
    }
  }
}
</script>

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

<script>
import { EventBus } from './EventBus.js';

export default {
  data() {
    return {
      message: ''
    }
  },
  mounted() {
    EventBus.$on('my-event', (message) => { 
      this.message = message;
    })
  }
}
</script>
ログイン後にコピー

上記のコードでは、EventBus という名前の Vue インスタンスを作成し、このインスタンスを通じてサブコンポーネント間の通信を実装しました。サブコンポーネント A は EventBus.$emit を通じてカスタム イベント my-event をトリガーし、サブコンポーネント B は EventBus.$on を通じて my-event# をリッスンします。 ##イベントと更新データ。

2. 状態管理に Vuex を使用する

Vuex は、Vue が公式に提供する状態管理ライブラリです。 Vuex を使用すると、アプリケーションの状態を管理し、コンポーネント間の通信を実装できます。

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

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    message: ''
  },
  mutations: {
    setMessage(state, message) {
      state.message = message;
    }
  },
  actions: {
    updateMessage({ commit }, message) {
      commit('setMessage', message);
    }
  },
  getters: {
    getMessage(state) {
      return state.message;
    }
  }
});

// 子组件A
<template>
  <button @click="handleClick">点击我触发事件</button>
</template>

<script>
import { mapActions } from 'vuex';

export default {
  methods: {
    ...mapActions(['updateMessage']),
    handleClick() {
      this.updateMessage('Hello Vuex!');
    }
  }
}
</script>

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

<script>
import { mapGetters } from 'vuex';

export default {
  computed: {
    ...mapGetters(['getMessage']),
    message() {
      return this.getMessage;
    }
  }
}
</script>
ログイン後にコピー
上記のコードでは、

Vuex を使用して、statemutations、# を含む store を作成します。 ##アクションゲッター。サブコンポーネント A は、mapActions補助関数を通じて updateMessage メソッドを呼び出すことにより、message の値を更新します。サブコンポーネント B は、mapGetters 補助関数を通じて message の値を取得します。 3. 注意事項

計算プロパティを上手に活用する: Vue では、計算プロパティは非常に便利な機能です。計算された属性を使用すると、テンプレートに複雑な式を記述することを回避でき、複数のデータ属性の計算結果をキャッシュしてパフォーマンスを向上させることもできます。
  1. プロパティを直接変更しないようにしてください。Vue では、プロパティは読み取り専用なので、プロパティの値を直接変更しないでください。サブコンポーネント内の props の値を変更する必要がある場合は、それをサブコンポーネントのデータ属性に変換し、サブコンポーネント内で変更する必要があります。変更した値を親コンポーネントに渡す必要がある場合は、emit イベントを使用できます。
  2. $refs を使用してサブコンポーネントのインスタンスを取得する: シナリオによっては、親コンポーネント内のサブコンポーネントのインスタンスを取得する必要がある場合、$refs を使用できます。子コンポーネントに ref 属性を追加すると、親コンポーネントの this.$refs を通じて子コンポーネントのインスタンスを取得できます。
  3. 概要
Vue コンポーネント通信では、親子コンポーネント通信と非親子コンポーネント通信の 2 つの最も一般的な方法があります。親子コンポーネントの通信では、props やイベントを介したデータ転送と対話を実現できます。非親子コンポーネント通信は、中央イベント バスとして Vue インスタンスを作成するか、状態管理に Vuex を使用することによって実現できます。 Vue コンポーネントの通信コードを記述するときは、計算されたプロパティを有効に活用し、props を直接変更することを避け、$refs を使用してサブコンポーネントのインスタンスを取得したり、開発効率とコードの保守性を向上させるその他のテクニックを使用したりする必要があります。

以上が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)

ISOファイルを解凍する方法 ISOファイルを解凍する方法 Feb 19, 2024 pm 04:07 PM

ISO ファイルは、ファイルやファイル システムを含むディスクの内容全体を保存するために通常使用される一般的なディスク イメージ ファイル形式です。 ISO ファイルの内容にアクセスする必要がある場合は、ISO ファイルを解凍する必要があります。この記事では、ISO ファイルを解凍するための一般的な方法をいくつか紹介します。仮想光学ドライブを使用した解凍 これは、ISO ファイルを解凍する最も一般的な方法の 1 つです。まず、DAEMON Tools Lite、PowerISO などの仮想光学ドライブ ソフトウェアをインストールする必要があります。次に、仮想光学ドライブ ソフトウェアのアイコンをダブルクリックします。

明朝試験で注意すべき事項の紹介 明朝試験で注意すべき事項の紹介 Mar 13, 2024 pm 08:13 PM

Mingchao テスト中は、情報の損失やゲームへの異常なログインを防ぐために、システムのアップグレード、工場出荷時設定へのリセット、部品の交換は避けてください。特別な注意事項: テスト期間中は異議申し立てチャンネルがありませんので、取り扱いには注意してください。 Mingchao テスト中に注意が必要な事項の紹介: システムのアップグレード、工場出荷時の設定の復元、機器のコンポーネントの交換などは行わないでください。注: 1. 情報の損失を避けるため、テスト期間中は慎重にシステムをアップグレードしてください。 2. システムをアップデートすると、ゲームにログインできなくなる問題が発生する可能性があります。 3. 現段階ではまだアピールチャンネルは開設されていないため、アップグレードするかどうかはプレイヤー自身の判断で選択してください。 4.同時に、1つのゲームアカウントは1台のAndroidデバイスと1台のPCでのみ使用できます。 5. 携帯電話システムをアップグレードしたり、工場出荷時の設定に戻したり、デバイスを交換したりする前に、テストが完了するまで待つことをお勧めします。

C++ 開発ノート: C++ コードでの Null ポインター例外の回避 C++ 開発ノート: C++ コードでの Null ポインター例外の回避 Nov 22, 2023 pm 02:38 PM

C++ 開発では、null ポインター例外は一般的なエラーであり、ポインターが初期化されていないか、解放された後も使用され続けている場合によく発生します。 Null ポインター例外はプログラムのクラッシュを引き起こすだけでなく、セキュリティ上の脆弱性も引き起こす可能性があるため、特別な注意が必要です。この記事では、C++ コードでの null ポインター例外を回避する方法について説明します。ポインター変数の初期化 C++ のポインターは、使用する前に初期化する必要があります。初期化されていない場合、ポインタはランダムなメモリ アドレスを指すことになり、Null Pointer Exception が発生する可能性があります。ポインタを初期化するには、ポインタを

初めてDouyinでライブブロードキャストを開始するにはどうすればよいですか?初めてライブ配信をする際に気をつけることは何ですか? 初めてDouyinでライブブロードキャストを開始するにはどうすればよいですか?初めてライブ配信をする際に気をつけることは何ですか? Mar 22, 2024 pm 04:10 PM

ショートビデオプラットフォームの台頭により、Douyinは多くの人々の日常生活に欠かせないものになりました。 Douyin でのライブ配信やファンとの交流は、多くのユーザーの夢です。では、Douyin で初めてライブブロードキャストを開始するにはどうすればよいでしょうか? 1.Douyinで初めてライブブロードキャストを開始するにはどうすればよいですか? 1. 準備 ライブブロードキャストを開始するには、まずDouyinアカウントが実名認証を完了していることを確認する必要があります。実名認証のチュートリアルは、Douyin APP の「自分」 -&gt; 「設定」 -&gt; 「アカウントとセキュリティ」にあります。実名認証が完了すると、ライブ配信条件を満たしてDouyinプラットフォームでライブ配信を開始できます。 2. ライブ配信許可を申請する ライブ配信条件を満たした後、ライブ配信許可を申請する必要があります。 Douyin APPを開き、「自分」→「クリエイターセンター」→「ダイレクト」をクリックします。

localstorage を使用してデータを保存する手順と注意事項 localstorage を使用してデータを保存する手順と注意事項 Jan 11, 2024 pm 04:51 PM

localStorage を使用してデータを保存する手順と注意事項 この記事では、主に localStorage を使用してデータを保存する方法と、関連するコード例を紹介します。 LocalStorage は、サーバーを経由せずにデータをユーザーのコンピューターのローカルに保持する、ブラウザーにデータを保存する方法です。 localStorage を使用してデータを保存する手順と注意事項は次のとおりです。ステップ 1: ブラウザが LocalStorage をサポートしているかどうかを確認する

Go プログラミング スキル: スライス内の要素を柔軟に削除する Go プログラミング スキル: スライス内の要素を柔軟に削除する Apr 02, 2024 pm 05:54 PM

Go スライス要素の削除 単一の要素を削除するには、append() メソッドを使用して、削除する要素を除いた新しいスライスを作成します。 copy() メソッドを使用して要素を移動し、長さを調整します。複数の要素を削除する: for ループを使用してスライスを反復処理し、新しいスライスから削除する要素を除外します。 reverse() メソッドを使用して削除する要素を並べ替え、インデックスの問題を避けるために後ろから前に削除します。削除する要素の数とパフォーマンス要件に基づいて、最も適切な手法を選択してください。

ネットワークなしで pip をインストールする手順と注意事項 ネットワークなしで pip をインストールする手順と注意事項 Jan 18, 2024 am 10:02 AM

オフライン環境に pip をインストールする方法と注意点. ネットワークがスムーズでないオフライン環境では、pip のインストールが困難になります。この記事では、オフライン環境に pip をインストールするいくつかの方法を紹介し、具体的なコード例を示します。方法 1: オフライン インストール パッケージを使用する インターネットに接続できる環境で、次のコマンドを使用して、公式ソースから pip インストール パッケージをダウンロードします: pipdownloadpip このコマンドは、公式ソースから pip とその依存パッケージを自動的にダウンロードし、現在のディレクトリに保存します。ダウンロードした圧縮パッケージをリモートの場所に移動します

Python 開発ノート: 一般的なメモリ リークの問題を回避する Python 開発ノート: 一般的なメモリ リークの問題を回避する Nov 22, 2023 pm 01:43 PM

高級プログラミング言語である Python は、学習しやすく、使いやすく、開発効率が高いという利点があり、開発者の間でますます人気が高まっています。ただし、ガベージ コレクション メカニズムの実装方法が原因で、Python は大量のメモリを処理するときにメモリ リークが発生する傾向があります。この記事では、よくあるメモリリーク問題、問題の原因、メモリリークを回避する方法の3つの側面からPython開発時に注意すべきことを紹介します。 1. 一般的なメモリ リークの問題: メモリ リークとは、動作中にプログラムによって割り当てられたメモリ空間を解放できないことを指します。

See all articles