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
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

服务

  • Web 开发
  • AI 智能体与生成式 AI
  • 移动应用开发
  • 数据分析与工程
  • UI/UX 与产品设计
  • 数字化转型

公司

  • 关于我们
  • 加入我们
  • 博客
  • 案例研究
  • Today I Learned
  • 联系我们

更多

  • 行业
  • 合作伙伴网络
© 2026 OOZOU. 版权所有。
隐私政策行为准则反贿赂反贪腐政策