lmes-web-base 状态管理方案详细文档
目录
- 简介
- 项目结构概览
- 核心状态管理架构
- Store.ts 状态容器详解
- State.ts 响应式状态系统
- globalState.ts 全局状态管理
- 组件间状态传递机制
- 状态持久化策略
- 性能优 化与最佳实践
- 错误处理与调试
- 总结
简介
lmes-web-base 采用了一套基于 Vue 3 Composition API 和自定义 Store 模块的全局状态管理方案。该方案通过响应式状态系统、provide/inject 机制和模块化设计,为复杂的 MES(制造执行系统)应用提供了高效、可维护的状态管理解决方案。
该状态管理方案的核心特点包括:
- 基于 Vue 3 响应式系统的现代状态管理
- 模块化的状态组织方式
- 支持状态持久化和跨页面数据共享
- 高效的组件间状态传递机制
- 完善的性能优化策略
项目结构概览
图表来源
核心状态管理架构
lmes-web-base 的状态管理架构采用了分层设计,从底层的响应式基础到顶层的业务组件,形成了完整的状 态管理体系。
图表来源
章节来源
Store.ts 状态容器详解
Store.ts 是整个状态管理方案的核心,它负责创建全局状态容器、管理状态生命周期以及提供状态访问接口。
状态容器初始化
// 基础状态生成器
const baseDataGenerate = (key?: BaseKeyEnum) => {
const data: BaseState = {
systemConfig: { state: ref({}) },
workSectionList: { state: ref([]) },
featureList: { state: ref([]) },
featureMap: { state: ref({}) },
}
return key ? data[key] : data
}
全局状态钩子函数
export const useGlobalState = createGlobalState<{
systemConfig: StateRef
workSectionList: StateRef
featureList: StateRef
productionLineList: StateRef
hasProductionLine: Ref<boolean>
getSystemConfig: () => Promise<any>
getWorkSectionList: (segmentId?: string) => Promise<any>
}>()
异步状态初始化流程
图表来源