Vueでのバスの使用に関する詳細な説明

Vueでのバスの使用に関する詳細な説明

Vue バス メカニズム (バス)

vuex を使用するだけでなく、vue 内の親子以外のコンポーネント間の通信もバスを介して行うことができ、この 2 つは異なるシナリオに適用できます。

バスは、小規模なプロジェクトや、少数のコンポーネントでデータが使用されるプロジェクトに適しています。多くのコンポーネント間でデータが使用される中規模および大規模のプロジェクトには適していません。 Bus は実際にはパブリッシュ/サブスクライブ モデルです。Vue のカスタム イベント メカニズムを使用して、トリガーの場所で $emit を通じてイベントをパブリッシュし、リッスンする必要があるページで $on を通じてイベントをリッスンします。

Vuex は、中規模から大規模のプロジェクトや、複数のコンポーネント間でデータを共有する状況に適しています。

コンポーネント通信バスの使用

utilsファイルの下にbus.jsを作成します。

// ユーティリティ - bus.js
'vue' から Vue をインポートします
定数バス = 新しい Vue()
デフォルトバスをエクスポート

1. 値の受け渡し

メッセージを送信

'@/utils/bus' からバスをインポートします

最初のパラメータはフラグ変数であり、2 番目のパラメータは通信値です。

us.$emit('message', 'hello');

情報の受信

'@/utils/bus' からバスをインポートします

最初のパラメータはフラグ変数であり、2 番目のパラメータの e は通信値です。

バス.$on('メッセージ', (e) => {
 コンソール.log(e)
})

2. 呼び出し方法

あるコンポーネント (A) が別のコンポーネント (B) のメソッドを呼び出す

コンポーネントBの方法

'@/utils/bus' からバスをインポートします
マウントされた(){ 
 バス.$on('testA', this.testA) 
},
テストA() {
 console.log('コンポーネントAによって呼び出されました')
}

コンポーネント呼び出し

'@/utils/bus' からバスをインポートします
マウントされた(){
 バス.$emit('testA')
}

Vue での bus の使用に関するこの記事はこれで終わりです。vue bus の使用に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VueはeventBusを使用してピアコンポーネント間の通信を実現します
  • Vueコンポーネント間の通信の非常に詳細な要約
  • vue2.0s で eventBus を使用して兄弟コンポーネント通信を実装するためのサンプル コード
  • Vue でのコンポーネント通信の 8 つの方法 (収集する価値があります!)
  • Vue2とVue3の兄弟コンポーネント通信バスの違いと使い方

<<:  Win10でのMySQL5.7.17無料インストール版の基本設定チュートリアルについて(画像とテキスト付き)

>>:  MySQLとOracleの違いを簡単に説明してください

推薦する

openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)

目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...

MySQL ソート機能の詳細

目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...

jQuery で従業員管理登録ページを実装する

この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...

CSSテキストシャドウの徐々にぼやける効果の実装

テキストシャドウテキストに影を追加します。テキストとテキスト装飾に複数のシャドウを追加することができ...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

TypeScript を使用して Vue3 で axios をカプセル化する詳細な例

この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...

docker を使用して Linux 環境に Springboot パッケージをデプロイするチュートリアル

springboot には tomcat サーバーが組み込まれているため、jar パッケージにパッケ...

JavaScript 手ぶれ補正のケーススタディ

原理手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒...

zabbix 4.04 の詳細なインストール チュートリアル (CentOS 7.6 ベース)

1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...

Vue.jsクラウドストレージで画像アップロード機能を実現

序文ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. オブジェクトスト...

JS配列ループ方式と効率分析の比較

配列メソッドJavaScript には多くの配列メソッドが用意されています。次の図は、ほとんどの配列...

MySQL 起動エラー 1067 および文字セットを変更して再起動した後の無効な回復

公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...

Nginx をインストールして複数のドメイン名を設定する方法

Nginx のインストールCentOS 6.x yum にはデフォルトで nginx ソフトウェア ...

MySQL 単一テーブルクエリの例の詳細な説明

1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...

IIS 7.5では、HTMLはSHTMLのようなinclude関数(モジュールマッピングの追加)をサポートします。

最初はたくさんのエラーを見つけましたが、実際には非常に簡単です。shtm の元の設定を参照するだけで...