ホームページ > ウェブフロントエンド > フロントエンドQ&A > vueイベントバスは廃止されるのでしょうか?

vueイベントバスは廃止されるのでしょうか?

青灯夜游
リリース: 2022-12-28 18:21:11
オリジナル
2643 人が閲覧しました

vue3 は、セキュリティが低いため、グローバル イベント バスをキャンセルしました。グローバル イベント バスは、グローバルな任意のコンポーネントの通信テクノロジです。つまり、任意のコンポーネント間の通信を実現できます。 vue3 でグローバルイベントバスを使用したい場合は、サードパーティライブラリの mitt または tiny-emitter を導入する必要があります。

vueイベントバスは廃止されるのでしょうか?

#このチュートリアルの動作環境: Windows7 システム、vue3 バージョン、DELL G3 コンピューター。

vue3 は、セキュリティが低いため、グローバル イベント バスをキャンセルしました。

#vue のグローバル イベント バスグローバル イベント バスは、グローバルな任意のコンポーネント通信テクノロジです。

名前が示すように、任意のコンポーネント間の通信を実現できます。

その通信はパペット (すべてのコンポーネントからアクセスできるパペット) を通じて行われ、vue では

$bus

という名前が付けられます。 vue2エントリ ファイル mian.js でライフ サイクル フックを直接使用できます

beforecreated

直接作成します $bus
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">beforeCreate() { Vue.prototype.$bus = this }</pre><div class="contentsignin">ログイン後にコピー</div></div>

マウントする前に忘れずにフック

を記述してください。 使用する場合:

    データを受信する必要があるコンポーネントで
  • mounted

    フック バインディング イベント モニタリングを使用します

    mounted() {
      this.$bus.$on(&#39;hello&#39;,(data) => {
        console.log(data);
      })
    },
    ログイン後にコピー
    このメソッドは、データを送信する必要があるコンポーネントで送信する必要がある操作でトリガーできます
  • methods: {
      sendStudentName(){
        this.$bus.$emit(&#39;hello&#39;,this.name)
      }
    },
    ログイン後にコピー
    コンポーネントが破棄されたら、イベントのバインドを解除し、バインドされていた場所でもバインドを解除することを忘れないでください。
  • vue3

vue3 ではグローバル イベント バスがキャンセルされているため、使用する場合はサードパーティ ライブラリを導入する必要があります

mitt または tiny-emitter1. mitt ライブラリをインストールします

beforeDestroy() {
  this.$bus.$off(&#39;hello&#39;)
},
ログイン後にコピー

2. js ファイルをルート ディレクトリにカプセル化して、コンポーネントにインポートされます。

ファイルに名前を付けるのが最善です。たとえば、eventBus.js

コンテンツ:

npm i mitt -s
ログイン後にコピー

3。

1) 相互に通信するコンポーネントは js

//导入
import mitt from &#39;mitt&#39;;
 //定义,定义也最好见名知义
const emitter = mitt();
 //暴露
export default emitter;
ログイン後にコピー
# をインポートする必要があります ##2) データを受信するコンポーネントは setup() でイベント リスナーにバインドされます

import emitter from &#39;../../eventBus&#39;
ログイン後にコピー

ここでのアロー関数は通常の関数で置き換えることもできます

3) Send Data は、データ コンポーネントがトリガーされたときに送信できます。コンポーネントが破棄された場合はイベントをアンバインドします

setup(){
  emitter.on(&#39;event&#39;,(info) => {
    ...
  })
  return{}
}
ログイン後にコピー

通常の関数を使用する場合は第二引数に関数を入れますが、アロー関数の場合は記述する必要はありません。上記と同様 onEvent

[関連する推奨事項: vuejs ビデオ チュートリアル

Web フロントエンド開発

]

以上がvueイベントバスは廃止されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート