OOZOU
お問い合わせ
TIL一覧に戻る
javascript

Vue.jsで実現するシンプルなFluxアーキテクチャ

2020年10月13日

シンプルな状態管理パターンだけで十分な小規模アプリの場合、私はいつもアプリの状態を保持するコンポーネント、つまりコンテナをひとつ用意します。これはアプリが自身の状態を参照するための単一の信頼できる情報源として機能します。Vueには EventBus と呼ばれるルートレベルのグローバルイベントリスナーを作る仕組みがあり、Fluxアーキテクチャを模倣する非常に簡単な方法になります。

必要なのは、次のようにVueを EventBus としてエクスポートするモジュールをひとつ作るだけです

// EventBus.js
import Vue from 'vue'
export const EventBus = new Vue()

これをコンテナの中で使うと、アプリ内の任意のコンポーネントからのイベントを listen できます。私は普段 created ライフサイクルでリスナーを追加しています。

EventBus.$on('event-name', callback)

その後は、任意のコンポーネントに EventBus をインポートすれば、どこからでも my-custom-event をトリガーできます。イベントをそのコンポーネントの親に emit して、変更をトリガーするコンポーネントとターゲットのコンテナの間にあるすべてのコンポーネントで同じ処理を繰り返す必要はありません。

// Goes directly to the global listener and triggers callback
EventBus.$emit('event-name')

以上です。複雑になりすぎてきたら、Vuexの利用を検討してください。

「javascript」の関連記事

javascript2020年10月13日

JS の分割代入

シンプルな例 javascript const [a, b, ...c] = [10, 20, 100,200] // a= 10, b=20, c=[100,200] const { first, second } = { first: 1, second: 2 } // first = 1, second = 2

javascript2020年10月13日

JavaScript で属性付きの HTML 要素を 1 行で作成する方法

JavaScript のプロジェクトでは、HTML 要素を動的に作成することがよくあります。従来のやり方では、何行ものコードを使って要素を作成し、複数の属性を 1 つずつ設定していたかもしれません…

プロジェクトをお考えですか?

あなたが構築しているものについてお聞かせください。

会話を始めるhello@oozou.com
OOZOU Logo

バンコク · シンガポール · 香港

X
Facebook
Instagram
LinkedIn

サービス

  • Web開発
  • AIエージェント & 生成AI
  • モバイルアプリ開発
  • データ分析 & エンジニアリング
  • UI/UX & プロダクトデザイン
  • デジタルトランスフォーメーション

会社情報

  • 会社概要
  • 採用情報
  • ブログ
  • 事例研究
  • Today I Learned
  • お問い合わせ

その他

  • 業界
  • パートナーネットワーク
© 2026 OOZOU. 無断転載を禁じます。
プライバシーポリシー行動規範ABACポリシー