Vue.js 3 イベントバス
P粉905144514
2023-08-24 18:08:45
<p>Vue 3 でイベント バスを作成するにはどうすればよいですか? </p>
<p>Vue 2 では、次のようになります: </p>
<pre class="brush:js;toolbar:false;">export const Bus = new Vue();
</pre>
<pre class="brush:js;toolbar:false;">bus.$on(...)
バス.$emit(...)
</pre>
<p>Vue 3 では、<code>Vue</code> はコンストラクターではなくなり、<code>Vue.createApp({});</code> は <code>$ なしで を返します< ;/code> object code> メソッドと <code>$emit</code> メソッド。 </p>
Vue.js バージョン 3 では、パブリッシャー/サブスクライバー (PubSub 概念) プログラミング パターンで記述されたサードパーティのライブラリまたは関数を使用できます。
イベント.js
リーリーindex.js
リーリー公式 ドキュメント で提案されているように、サイドバーと header が含まれていると仮定すると、
mitt ライブラリを使用してコンポーネント間でイベントをディスパッチできます。サイドバーを閉じる/開くボタン。サイドバー コンポーネント内の特定のプロパティを切り替える必要があります:
main.js にライブラリをインポートし、エミッタのインスタンスを作成し、それを グローバル プロパティ :
として定義します。 ######インストール:###### リーリー ######使用法:###### リーリーヘッダーにペイロードを含む toggle-sidebar イベントを発行します:
リーリーサイドバーにペイロードを含むイベントを受信します: リーリー コンポジション API を使用している場合は、次のように
emitterを使用できます:
ファイル src/composables/useEmitter.js を作成します
リーリーそこからは、
useRouterを使用するのと同じように
リーリー 組み合わせ API の使用useEmitter
を使用できます:
新しいコンポジション API の恩恵を受けて、コンポーザブル イベント バスを定義することもできます:
eventBus.jsリーリー コンポーネント A で次の操作を実行します:
リーリーコンポーネント B:
リーリー