Vue コンポーネント通信: グローバル イベント通信に $bus を使用する
Vue コンポーネント通信: グローバル イベント通信に $bus を使用する
Vue 開発では、コンポーネント間の通信が一般的な問題になります。 Vue では、コンポーネント間の通信を実装するためのさまざまな方法が提供されています。シンプルで柔軟な方法の 1 つは、グローバル イベント通信に $bus を使用することです。
$bus は Vue インスタンスの拡張属性であり、中央のイベント バスとみなすことができます。 $bus を通じて、どこでもイベントを公開したり、どこでもイベントをサブスクライブしたりできます。
グローバル イベント通信を実装する
まず、Vue インスタンスでグローバル イベント バスを作成します。
// main.js import Vue from 'vue' Vue.prototype.$bus = new Vue()
次に、通信する必要があるコンポーネントで ## を使用できます。 #this.$busグローバル イベント バスにアクセスします。
$on メソッドを通じてイベントをサブスクライブし、
$emit メソッドを通じてイベントを公開できます。
// ComponentA.vue <template> <div> <button @click="onClick">点击触发事件</button> </div> </template> <script> export default { methods: { onClick() { this.$bus.$emit('event', 'Hello from Component A') } } } </script>
// ComponentB.vue <template> <div> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: '' } }, mounted() { this.$bus.$on('event', (msg) => { this.message = msg }) } } </script>
this.$bus.$emit メソッドを通じて発行され、メッセージが表示されます。パラメータとして渡されます。コンポーネント B は、
this.$bus.$on メソッドを通じて同じイベントをサブスクライブし、イベントの受信後に
message プロパティを更新します。
- コンポーネント内 イベント サブスクリプションが破棄されると、メモリ リークを防ぐために手動でキャンセルする必要があります。
// ComponentB.vue beforeDestroy() { this.$bus.$off('event') }
ログイン後にコピー - すべてのコンポーネントはグローバル イベント バスにアクセスできるため、さまざまなコンポーネントによって発行されたイベントを区別するために名前空間が必要です。これは、イベント名の前にコンポーネント名を付けることで実現できます。 アプリケーションが大きく、多くのコンポーネントがある場合、グローバル イベント バスによりコードが乱雑になり、保守が困難になる可能性があります。したがって、プロジェクトでは必要な場合にのみグローバル イベント バスを使用し、それ以外の場合は、Vuex などの状態管理ツールや専用のコンポーネント通信方法の使用を検討することをお勧めします。
// 组件A中发布的事件 this.$bus.$emit('A:event', 'Hello from Component A') // 组件B中订阅的事件 this.$bus.$on('A:event', (msg) => { // 处理事件 })
ログイン後にコピー - 上記は、グローバル イベント通信に $bus を使用する方法です。簡単なコード例を通じて、Vue でコンポーネント間の通信を実装する方法を明確に理解できます。実際のプロジェクトでは、コードの保守性と拡張性を向上させるために、特定のニーズに応じて適切な通信方法を選択することをお勧めします。
以上がVue コンポーネント通信: グローバル イベント通信に $bus を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue で ECharts を使用すると、アプリケーションにデータ視覚化機能を簡単に追加できます。具体的な手順には、ECharts および Vue ECharts パッケージのインストール、ECharts の導入、チャート コンポーネントの作成、オプションの構成、チャート コンポーネントの使用、Vue データに対応したチャートの作成、対話型機能の追加、および高度な使用法の使用が含まれます。

質問: Vue におけるエクスポートのデフォルトの役割は何ですか?詳細説明: エクスポートデフォルトは、コンポーネントのデフォルトのエクスポートを定義します。インポートすると、コンポーネントが自動的にインポートされます。インポートプロセスを簡素化し、明確さを改善し、競合を防ぎます。一般に、名前付きエクスポートとデフォルト エクスポートの両方を使用して、個々のコンポーネントをエクスポートし、グローバル コンポーネントを登録するために使用されます。

Vue.js マップ関数は、各要素が元の配列の各要素の変換結果である新しい配列を作成する組み込みの高階関数です。構文は、map(callbackFn) です。callbackFn は、配列内の各要素を最初の引数として受け取り、オプションでインデックスを 2 番目の引数として受け取り、値を返します。 map 関数は元の配列を変更しません。

Vue.js では、event はブラウザによってトリガーされるネイティブ JavaScript イベントですが、$event は Vue コンポーネントで使用される Vue 固有の抽象イベント オブジェクトです。 $event はデータ バインディングをサポートするようにフォーマットおよび拡張されているため、一般に $event を使用する方が便利です。ネイティブ イベント オブジェクトの特定の機能にアクセスする必要がある場合は、event を使用します。

onMounted は、Vue のコンポーネント マウント ライフ サイクル フックです。その機能は、コンポーネントが DOM にマウントされた後に、DOM 要素への参照の取得、データの設定、HTTP リクエストの送信、イベント リスナーの登録などの初期化操作を実行することです。コンポーネントが更新された後、またはコンポーネントが破棄される前に操作を実行する必要がある場合は、他のライフサイクル フックを使用できます。

Vue.js でモジュールをエクスポートするには、エクスポートとデフォルトのエクスポートの 2 つの方法があります。 export は名前付きエンティティのエクスポートに使用され、中括弧の使用が必要です。export default はデフォルト エンティティのエクスポートに使用され、中括弧は必要ありません。インポートする場合、エクスポートによってエクスポートされたエンティティはその名前を使用する必要がありますが、エクスポートのデフォルトによってエクスポートされたエンティティは暗黙的に使用できます。複数回インポートする必要があるモジュールにはデフォルトのエクスポートを使用し、一度だけエクスポートするモジュールにはエクスポートを使用することをお勧めします。

Vue フックは、特定のイベントまたはライフサイクル ステージでアクションを実行するコールバック関数です。これらには、ライフサイクル フック (beforeCreate、mounted、beforeDestroy など)、イベント処理フック (クリック、入力、キーダウンなど)、およびカスタム フックが含まれます。フックはコンポーネントの制御を強化し、コンポーネントのライフサイクルに対応し、ユーザーの操作を処理し、コンポーネントの再利用性を向上させます。フックを使用するには、フック関数を定義し、ロジックを実行してオプションの値を返すだけです。

Vue.js イベント修飾子は、次のような特定の動作を追加するために使用されます。 デフォルト動作の防止 (.prevent) イベント バブリングの停止 (.stop) ワンタイム イベント (.once) イベントのキャプチャ (.capture) パッシブ イベント リスニング (.passive) アダプティブ修飾子 (.self)キー修飾子 (.key)
