Vueコンポーネント通信のさまざまな方法の詳細な説明

Vueコンポーネント通信のさまざまな方法の詳細な説明

コンポーネント通信に関しては、おそらく誰もがよく知っている 5 つのタイプがあります。

1. 父から息子へ

親コンポーネントはカスタム属性を通じて子コンポーネントに値を渡し、子コンポーネントはpropsを使用して値を受け取ります。

2. 息子から父へ

親コンポーネントは子コンポーネントタグのイベントをカスタマイズし、子コンポーネントは$emitを通じてカスタムイベントをトリガーし、パラメータを渡すことができる。

3. 親子関係のないコンポーネントの値の転送

eventBus イベント バス:

情報はeventBusを通じて公開および購読できます(誰でもアクセスできるイベントバスを作成します)

ここに画像の説明を挿入

4. ヴュークス

Vuex は、Vue.js アプリケーション専用に開発された状態管理モードです。集中型ストレージ マネージャーを使用して、プログラムのすべてのコンポーネントの状態を管理し、複数のコンポーネント間の通信を解決します。ただし、これは主に中規模および大規模プロジェクトで使用されるため、小規模プロジェクトでは肥大化して見えることになります。

5. 参照

refと·$refs·を追加することで、子コンポーネントを簡単に取得し、子コンポーネントのプロパティとメソッドにアクセスすることもできます。refsに関しては、詳細な使用法を記載した別の記事も書いています。refsの使用法

上記の 5 つに加えて、あまり一般的ではない 5 つのコンポーネント通信方法があります。

6. 子供

親コンポーネントでは、$childrenはコンポーネントコレクションを返します。子コンポーネントの順序がわかっている場合は、添え字演算を使用することもできます。

ここに画像の説明を挿入

7. $親

子コンポーネントではthis.$parent親コンポーネントを指します。子コンポーネントは親コンポーネントのデータを直接変更することはできません。 this.$parent を使用すると、親コンポーネントがデータを変更できるようになります。

例えば:

this.$parent.xxx=200

this.$parent.fn()

8. 提供と注入

ペアで表示されます: provide と inject はペアで表示されます

機能: 親コンポーネントが子孫コンポーネントにデータを渡すために使用します

方向:

  • 親コンポーネントに提供し、従属コンポーネントに渡すデータを返します
  • inject は、このデータを使用する必要のある子孫コンポーネントにデータを挿入します。 (コンポーネント階層の深さに関係なく)

ここに画像の説明を挿入

9. $属性

親コンポーネントが孫コンポーネントにデータを渡すために使用します。

10. $リスナー

孫コンポーネントが親コンポーネントにデータを渡すために使用します。

ここに画像の説明を挿入

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueコンポーネントのカスタムイベントの詳細な説明
  • Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明
  • Vueコンポーネントの動的コンポーネントの詳細な説明
  • Vue イメージ ドラッグ アンド ドロップ ズーム コンポーネントの使用方法の詳細な説明
  • Vue でのルータービューコンポーネントの使用に関する詳細な説明
  • Vueコンポーネントの詳細な説明

<<:  MySQL5.7 並列レプリケーションの原理と実装

>>:  Docker5フル機能の港湾倉庫構築プロセス

推薦する

Vue ファースト スクリーン パフォーマンス最適化コンポーネントの知識ポイントの概要

Vue ファースト スクリーン パフォーマンス最適化コンポーネントVue ファースト スクリーン パ...

Linux でコマンドまたはプロセスの実行時間を調べる方法

Unix ライクなシステムでは、コマンドまたはプロセスの実行がいつ開始されたか、またプロセスがどのく...

MySQL データベースの高度なクエリとマルチテーブルクエリ

MySQL マルチテーブルクエリワークシートを追加する -- ユーザーテーブル (ユーザー) テーブ...

Vueメソッドに基づくシンプルなタイマーの実装

Vueのシンプルなタイマーを参考にしてください。具体的な内容は以下のとおりです原理: setInte...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

Linux ホスト名設定の詳細な紹介

目次1. Linuxホスト名を設定するクライアントホストを構成するサーバーホストを構成する2. ホス...

JavaScript ベースのシンプルな計算機の実装

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

Centos7 への MySQL8 のインストールチュートリアル

MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...

vsCodeはワンクリックでvueテンプレートを生成します

1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...

Linux nohup コマンドの原理と例の分析

nohup コマンドUnix/Linux を使用する場合、通常はプログラムをバックグラウンドで実行す...

Vue双方向バインディングの詳細な説明

目次1. 双方向バインディング2. 他のタグを選択した場合にも同じ結果になりますか? 答えはもちろん...

Windows10にmysql5.7.18をインストールするチュートリアル

このチュートリアルでは、MySQL 5.7.18のインストールと設定方法を参考までに紹介します。具体...

Mac に mysql5.7 をインストールするための完全な手順 (画像とテキスト付き)

最近、Mac システムを使用して、ローカル Web サーバー環境を構築する準備をしていました。 Ma...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...