Vueバスの簡単な使い方

Vueバスの簡単な使い方

Vueバスの簡単な使い方

シナリオの説明:

コンポーネント A にはコンポーネント B と C が含まれ、コンポーネント B にはコンポーネント D が含まれます。コンポーネント D がコンポーネント A 内のコンポーネント C のメソッドをトリガーする場合はどうなるでしょうか。

もちろん解決策はあります。vuex vuex使用して状態を管理したり、 $emitを使用して状態を渡すこともできますが、私はバス メソッドを試してみたいと思います。

次のように:

バスのエミットは D コンポーネントでトリガーされ、次にバスのオンは A コンポーネントのメソッドをトリガーするために使用されます。

コンポーネントD

データロード(){
   console.log('読み込み完了トリガーイベント');
   this.$bus.$emit('itemDataLoad') 
   // this.$bus.$emit('イベント名', パラメータ) // 2番目はパラメータになる},

コンポーネントA

 マウント() {
    // アイテム内のデータの読み込みをリッスンします this.$bus.$on('itemDataLoad', () => {
      console.log('データの読み込みが完了しました');
    })
    // this.$bus.$on('イベント名', コールバック関数 (パラメータ))
  },

もちろん、コンポーネント A では、コンポーネント C のイベントはthis.$refsなどによってトリガーされる可能性があります。

もう 1 つのステップは、 $busデフォルトでは存在しないことです。 this.$bus為undefined

心配しないでください。main.js に $bus を追加してください。

// バス バス vue インスタンス Vue.prototype.$bus = new Vue()

もちろん、バスはライフサイクル中に削除できます。

this.$bus.$off();

記録カプセル型手ぶれ防止機能

// デバウンス関数: function (fun, delay) {
    タイマーを null にする
    // 関数を呼び出すときに渡されたパラメータの値を受け取ります... args は複数にすることができます return function (...args) {
      if (tiemr) 戻る
      タイマー = setTimeout(() => {
        fun.apply(これ、引数)
      }、 遅れ);
    }
  }

const リフレッシュ = デバウンス(xxx, 500)

refresh('パラメータ1', 'パラメータ2', 'パラメータ3')

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

以下もご興味があるかもしれません:
  • Vueコンポーネントのカスタムイベントについてどれくらい知っていますか
  • Vue コンポーネントの学習範囲を限定した詳細な説明
  • Vue パブリッシュ・サブスクライブモデルの実装プロセス図
  • Vue におけるパブリッシュ サブスクライブ モデルの実際の適用の詳細な説明
  • Vueバスの仕組み(バス)の知識ポイントを詳しく解説
  • Vue コンポーネントのイベント バスとメッセージの公開およびサブスクリプションの詳細な説明

<<:  Ubuntu 20.04 に Xrdp サーバー (リモート デスクトップ) をインストールする方法

>>:  MySql COALESCE 関数の使用コード例

推薦する

mysql8.0.11をインストールしてrootパスワードを変更し、navicat for mysqlに接続するアイデアの詳細な説明

1.1. ダウンロード:公式ウェブサイトから zip パッケージをダウンロードします。私は 64 ビ...

Vue3.xはコンポーネント通信にmitt.jsを使用します

目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...

Windows 10 で Hyper-V サービスをシャットダウンするいくつかの方法

VMware Workstation を使用して Windows 10 で仮想マシンを開くと、VMw...

WebプロジェクトのDockerデプロイメントの実装

前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

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

Vue バス メカニズム (バス) vuex を使用するだけでなく、vue 内の親子以外のコンポーネ...

ウェブサイトのホームページを作成するための基本原則

1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...

HTMLポップアップdivはモバイルの中央揃えを実現するのに非常に便利です

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

MySQL InnoDBエンジンのインデックスとストレージ構造の詳細な説明

序文Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだ...

Centos7.5 構成 Java 環境のインストール Tomcat の説明

Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...

フォームデータを取得するための Node.js メソッドの 3 つの例

序文Nodejs はサーバーサイド言語です。開発中、登録やログインなどでは、判断のためにフォームを通...

JSON.parse と JSON.stringify の使い方の詳細な説明

目次JSON.パースJSON.parse 構文リバイバーパラメータJSON.parse の機能その他...

Nginx ストリーム構成プロキシ (Nginx TCP/UDP ロード バランシング)

序章nginx が優れたリバース プロキシ サービスであることは誰もが知っています。nginx を使...

MySQL の隠し列の詳細表示

目次1. 主キーが存在する2. 主キーはないが、一意のインデックスが存在する3. 共同主キーまたは共...