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フル機能の港湾倉庫構築プロセス

推薦する

Linux でファイルを削除するときに「操作は許可されていません」というプロンプトが表示される場合の対処方法

同僚からよく聞かれるのですが、ファイル/ディレクトリを削除すると「操作は許可されていません」というエ...

ウェブサイトの再設計はどの家族にとっても難しい作業です

<br />どの家庭にもそれぞれの問題があり、改訂はどの IT 企業にとっても問題の 1...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...

原因不明のMySqlサービス消失の解決策

原因不明のMySqlサービス消失の解決策先ほど、MySQL-Front が突然 MySql を開けな...

サーバー間のファイル バックアップ ソリューション、サーバー ファイルを別のサーバーに自動的にバックアップする方法は?

多くの組織ではファイル サーバーをバックアップする必要があり、あるサーバーから別のファイル サーバー...

MySQLはインデックスプッシュダウンを数秒で理解するのに役立ちます

目次1. インデックスプッシュダウン最適化の原理2. インデックスプッシュダウンの具体的な実践1. ...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

MySQL 5.7 zip版(zip版)のインストールと設定手順の詳細

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

DockerでJavaプログラムを起動する方法

シンプルなSpring Boot Webプロジェクトを作成するアイデア ツールを使用して、Sprin...

Raspberry PiにDockerをインストールする方法

Raspberry Pi は ARM アーキテクチャをベースとしているため、Docker のインスト...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します

1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...

MySQL バッチ挿入ループの詳細なサンプルコード

背景数日前、MySql でページングを行っていたときに、ページングに制限 0,10 を使用するとデー...

CentOS7にMySQL 8.0.26をインストールする手順

1. まず、お使いのマシンに応じて、MySQL 公式サイトから対応するデータベースをダウンロードしま...