文章 · 前端工程
状态管理可以有多轻
状态管理被过度复杂化了。多数项目真正需要的只有三件事:一份共享数据、一个改它的入口、一个能追踪的变更来源。
先问需不需要全局
只有跨页面、跨层级、且多处读写的数据才值得放进全局。其余留在组件里,代码量会少一半,理解成本也低得多。
模块级单例往往就够了
一个模块作用域里的响应式对象,加上几个操作它的函数,就构成了一份全局状态。它不依赖任何框架特性,也天然跨组件共享。
改状态必须走函数
不要让组件直接改共享对象的字段。所有写入收进函数里,将来要加日志、加校验、加持久化时,只需要改一处。
ts
const state = reactive({ dark: false })
export function useUi() {
return {
state,
toggleDark: () => (state.dark = !state.dark),
}
}
评论6
登录后参与评论,你的发言会署上自己的名字。
林深作者@linshen·2026-08-03
先占个位:文里的数字都是本地实测的,测试环境写在文末备注里,有疑问直接在这儿回。
严冬@yandong·2026-08-05
状态管理这块我更倾向于能不放全局就不放,理解成本差很多。
程野@chengye·2026-08-06
这份清单可以直接拿去做评审模板了,覆盖面挺全。
姜堰@jiangyan·2026-08-07
命名那一条看着简单,但确实是评审里最常被提出来的问题。
童语@tongyu·2026-08-08
边界情况那段写得好,很多问题都是顺利路径跑通了就当完成了。
江辰@jiangchen·2026-08-09
刚好在排查同类问题,看完直接照着改了一版,省了一下午。