前端技术栈
MolanDev Cloud 前端采用现代化的技术栈,提供极致的开发体验和用户体验。
核心技术
Vue 3
- 版本:3.5+
- 特性:
- Composition API
<script setup>语法糖- TypeScript 支持(渐进式)
- 性能优化
Vite
- 版本:5.0+
- 特性:
- 极速的冷启动
- 即时的模块热更新
- 真正的按需编译
- 优化的构建输出
Element Plus
- 版本:2.8+
- 特性:
- 企业级 UI 组件
- Vue 3 原生支持
- 完善的主题定制
- TypeScript 支持
Pinia
- 版本:2.2+
- 特性:
- 轻量级状态管理
- 完整的 TypeScript 支持
- 模块化设计
- DevTools 支持
Vue Router
- 版本:4.4+
- 特性:
- 动态路由
- 路由守卫
- 路由懒加载
- 历史模式
项目结构
frontend/
├── public/ # 静态资源
│ └── iconfonts/ # 图标字体
│
├── src/
│ ├── api/ # API 接口
│ │ ├── system/ # 系统管理 API
│ │ ├── login/ # 登录 API
│ │ └── ...
│ │
│ ├── assets/ # 资源文件
│ │ └── css/
│ │
│ ├── components/ # 全局组件
│ │ ├── DictSelect.vue # 字典选择器
│ │ ├── IconSelector.vue # 图标选择器
│ │ └── WangEditor.vue # 富文本编辑器
│ │
│ ├── layout/ # 布局组件
│ │ ├── aside/ # 侧边栏
│ │ ├── navbar/ # 导航栏
│ │ ├── main/ # 主内容区
│ │ └── index.vue # 布局入口
│ │
│ ├── router/ # 路由配置
│ │ └── index.js
│ │
│ ├── stores/ # 状态管理
│ │ ├── routes.js # 路由状态
│ │ ├── setting.js # 设置状态
│ │ └── userInfo.js # 用户信息
│ │
│ ├── styles/ # 样式文件
│ │ ├── app.scss # 全局样式
│ │ ├── base.scss # 基础样式
│ │ └── index.scss # 样式入口
│ │
│ ├── utils/ # 工具函数
│ │ ├── auth.js # 权限工具
│ │ ├── request.js # HTTP 请求
│ │ ├── storage.js # 存储工具
│ │ └── ...
│ │
│ ├── views/ # 页面组件
│ │ ├── system/ # 系统管理
│ │ ├── login/ # 登录页
│ │ └── ...
│ │
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
│
├── .env.development # 开发环境配置
├── .env.production # 生产环境配置
├── vite.config.js # Vite 配置
└── package.json # 依赖配置核心依赖
json
{
"dependencies": {
"vue": "^3.5.27",
"vue-router": "^4.4.0",
"pinia": "^2.2.0",
"element-plus": "^2.8.0",
"@element-plus/icons-vue": "^2.3.0",
"axios": "^1.7.0",
"@wangeditor/editor": "^5.1.0",
"@wangeditor/editor-for-vue": "^5.1.0"
},
"devDependencies": {
"vite": "^5.0.0",
"@vitejs/plugin-vue": "^5.0.0",
"sass": "^1.69.0"
}
}特色功能
1. 主题系统
详见 主题系统
2. 布局系统
详见 布局系统
3. 标签页系统
详见 标签页系统
4. 权限控制
详见 权限控制
5. 业务组件
详见 业务组件
开发规范
组件命名
- 页面组件:PascalCase,如
UserList.vue - 通用组件:PascalCase,如
DictSelect.vue - 布局组件:PascalCase,如
VerticalLayout.vue
样式规范
- 使用 SCSS
- 使用 BEM 命名规范
- 使用 CSS 变量进行主题定制
API 调用
- 统一使用
utils/request.js封装的 axios - API 按模块划分到
src/api/目录 - 使用 async/await 语法
状态管理
- 使用 Pinia 进行状态管理
- 按功能模块划分 store
- 使用 Composition API 风格