OOZOU
與我們聯繫
返回 TIL 列表
javascript

用 Vue.js 實作簡單的 Flux 架構

October 13, 2020

對於只需要簡單狀態管理模式的小型 app,我總是用一個元件來保存整個 app 的狀態,也就是一個 container。它作為 single source of truth,讓 app 參照自己的狀態。Vue 提供了一種在根層級建立全域事件監聽器的機制,叫做 EventBus,這是模擬 flux 架構超級簡單的方式。

你只需要一個把 Vue 匯出為 EventBus 的模組,像這樣

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

接著你就可以在 container 裡用它來監聽來自 app 中任何元件的事件。我通常會在 created 生命週期加上監聽器。

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

接著你可以在任何元件中匯入 EventBus,就能從任何地方觸發 my-custom-event,不必把事件 emit 給該元件的父層,也不必在觸發變更的元件和目標 container 之間的每一層元件裡重複整個流程。

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

就這樣。如果狀況變得太複雜,可以考慮改用 Vuex。

更多關於 javascript 的筆記

javascriptOctober 13, 2020

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

javascriptOctober 13, 2020

如何在 JavaScript 中用一行程式碼建立帶有屬性的 HTML 元素

在開發 JavaScript 專案時,動態建立 HTML 元素是很常見的需求。傳統上,你可能會用好幾行程式碼來建立元素並逐一設定多個屬性…

有專案構想嗎?

我們很樂意聆聽您正在打造的產品。

開始對話hello@oozou.com
OOZOU Logo

曼谷 · 新加坡 · 香港

X
Facebook
Instagram
LinkedIn

服務

  • Web 開發
  • AI 代理人與生成式 AI
  • 行動應用開發
  • 數據分析與工程
  • UI/UX 與產品設計
  • 數位轉型

公司

  • 關於我們
  • 職涯
  • 部落格
  • 案例研究
  • Today I Learned
  • 聯繫我們

更多

  • 產業
  • 合作夥伴網絡
© 2026 OOZOU. 版權所有。
隱私政策行為準則反賄賂反貪腐政策