You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
1 day ago | |
---|---|---|
.. | ||
core | 2 days ago | |
role-management | 1 day ago | |
route-sync | 1 day ago | |
system-settings | 1 week ago | |
user-management | 1 day ago | |
ModuleManager.js | 2 weeks ago | |
README.md | 2 weeks ago | |
config.js | 5 days ago | |
example-usage.js | 1 week ago | |
index.js | 1 week ago |
README.md
GoFaster 模块化架构
概述
本项目已重构为模块化架构,将原有功能按业务领域划分为不同的模块,提高代码的可维护性和可扩展性。
模块结构
modules/
├── core/ # 核心模块
│ ├── components/ # 核心组件
│ ├── services/ # 核心服务
│ ├── utils/ # 核心工具
│ └── store/ # 核心状态管理
├── user-management/ # 用户管理模块
│ ├── components/ # 用户管理组件
│ ├── services/ # 用户管理服务
│ ├── views/ # 用户管理页面
│ └── store/ # 用户管理状态
├── system-settings/ # 系统设置模块
│ ├── components/ # 系统设置组件
│ ├── views/ # 系统设置页面
│ └── store/ # 系统设置状态
├── business-features/ # 业务功能模块
│ ├── components/ # 业务功能组件
│ ├── services/ # 业务功能服务
│ └── views/ # 业务功能页面
├── config.js # 模块配置
├── ModuleManager.js # 模块管理器
└── index.js # 主模块入口
模块说明
1. 核心模块 (Core)
- 功能: 提供应用的基础架构和核心功能
- 包含: 主题管理、数据库服务、核心组件等
- 依赖: 无
- 优先级: 1
2. 用户管理模块 (User Management)
- 功能: 处理用户认证、用户信息管理、权限控制等
- 包含: 登录、注册、用户资料、权限管理等
- 依赖: 核心模块
- 优先级: 2
3. 系统设置模块 (System Settings)
- 功能: 管理系统配置、用户偏好设置等
- 包含: 应用设置、主题设置、用户偏好等
- 依赖: 核心模块
- 优先级: 3
4. 业务功能模块 (Business Features)
- 功能: 实现具体的业务功能
- 包含: 速度测试、历史记录等
- 依赖: 核心模块、用户管理模块
- 优先级: 4
使用方法
导入模块
// 导入特定模块
import { userService, LoginModal } from '@/modules/user-management'
// 导入核心功能
import { themeManager, Toast } from '@/modules/core'
// 导入所有模块
import { registerModules } from '@/modules'
模块注册
import { registerModules } from '@/modules'
// 在应用启动时注册所有模块
registerModules(app)
模块管理
import moduleManager from '@/modules/ModuleManager'
// 检查模块状态
const status = moduleManager.getModuleStatus('user-management')
// 手动加载模块
await moduleManager.loadModule('user-management')
扩展新模块
1. 创建模块目录
modules/
└── new-module/
├── components/
├── services/
├── views/
├── store/
└── index.js
2. 创建模块入口文件
// modules/new-module/index.js
export { default as NewComponent } from './components/NewComponent.vue'
export { default as newService } from './services/newService.js'
3. 更新配置文件
// modules/config.js
export const MODULE_CONFIG = {
// ... 其他模块
'new-module': {
name: 'New Module',
description: '新功能模块',
version: '1.0.0',
dependencies: ['core'],
priority: 5
}
}
4. 更新主模块入口
// modules/index.js
export * from './new-module/index.js'
最佳实践
- 模块独立性: 每个模块应该尽可能独立,减少模块间的耦合
- 依赖管理: 明确声明模块依赖关系,避免循环依赖
- 接口设计: 模块间通过明确的接口进行通信
- 状态隔离: 每个模块管理自己的状态,避免全局状态污染
- 错误处理: 模块内部处理自己的错误,向上抛出有意义的错误信息
迁移说明
原有的功能已按以下方式迁移:
- 用户认证相关 →
user-management
模块 - 系统设置相关 →
system-settings
模块 - 业务功能相关 →
business-features
模块 - 核心功能相关 →
core
模块
注意事项
- 模块加载顺序按照依赖关系和优先级自动确定
- 模块初始化失败不会影响其他模块的正常运行
- 可以通过模块管理器监控模块状态
- 新增功能建议按模块化方式组织代码