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

推薦する

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

Dockerfile を使用して nginx イメージを構築する例

Dockerfile の紹介Docker は、Dockerfile の内容を読み取ってイメージを自動...

Dockerのネットワークモードと設定方法

1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...

iframeノードの初期化の問題に関する議論

今日、ふとリッチテキストエディタの制作原理を見直してみようと思いました。それで、彼は何も言わずにそれ...

MySQLクエリ最適化: 100万件のデータに対するテーブル最適化ソリューション

1. 2つのクエリエンジン(myIsamエンジン)のクエリ速度InnoDB はテーブル内の特定の行数...

MySQL テーブル フィールドの時間設定のデフォルト値

アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...

MySQL 5.7.19 winx64 無料インストールバージョン設定チュートリアル

mysql-5.7.19-winx64インストールフリー版の設定方法、参考までに具体的な内容は以下の...

HTML はモバイル上で固定フローティング半透明検索ボックスを実装します

質問。モバイルショッピングモールシステムでは、ページの上部に検索ボックスがよく見られます。ブロガーは...

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

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

divは、自動入力スタイルをブロックする入力ボックスとして入力を使用せずにコンテンツを入力できます。

今日、私は公開用の動的なウィンドウ スタイルを設計しましたが、マウスで入力をクリックしたときにブラウ...

Reactでカスタムフックを作成する方法を教えます

1. カスタムフックとは何かロジックの再利用簡単に言えば、カスタム フックを使用すると、特定のコンポ...

ウェブページを作るときに知っておくべきいくつかのスキル

1. IE6 では z-index が無効です。 CSS では、階層を変更するために z-index...

キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

目次オープニングシーンv-for を使用した直接レンダリングカスタムコンポーネントで直接レンダリング...

MySQL データ ウェアハウスを保護するための 5 つのヒント

さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...

CentOS 7にChromeブラウザをインストールする方法

この記事では、CentOS 7 に Chrome ブラウザをインストールする方法を紹介します。詳細は...