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 関数の使用コード例

推薦する

MySQL トランザクションと分離レベルの基本原理の簡単な分析

目次序文1. 取引の基本原則の簡単な分析原子性:持続性分離:一貫性: 2. 分離レベルの基本原理の分...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

Linux 上の MYSQL 5.7 でルート パスワードを取得する際の問題 (テスト済み、利用可能)

目次1. --skip-grant-tables 経由で取得する1.1 my.conf を変更し、新...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

react-color を使用してフロントエンドのカラーピッカーを実装する方法

背景次の図に示すように、 react-color を使用してフロントエンド インターフェースのカラー...

Datagrip2020 が MySQL ドライバーのダウンロードに失敗する

「downloadlaod」を直接クリックしてもダウンロードできない場合は、ここからダウンロードす...

別の種類の「キャンセル」ボタン

「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...

Nginx Linux のインストールと展開の詳細なチュートリアル

1. Nginx の紹介Nginxは負荷分散やリバースプロキシにも使えるWebサーバーです。現在最も...

プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

序文CSS グリッドは通常、さまざまなフレームワークにバンドルされていますが、実際のビジネス ニーズ...

MySQL データベースの最適化: テーブルとデータベースのシャーディング操作の詳細な説明

この記事では、例を使用して、MySQL データベースの最適化のためのテーブルおよびデータベース シャ...

Dockerでmongodbデータベースを使用するための実装コード

mongoイメージを取得する sudo docker pull mongo mongodbサービスを...

JS での filter() 配列フィルターの使用

目次1. はじめに2. 方法の紹介3. 使用例要約する1. はじめに配列フィルターは、フロントエンド...

Tomcat で JNDI データ ソースを構成する 3 つの方法

これまでの仕事では、開発サーバーは一般的にTomcatでした。データソースは、多くの場合、appli...