跳到主要内容

前端界面

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本章节面向 yudao-cloud 的前端界面体系,系统性介绍管理后台的多套前端实现方案,涵盖:

  • 管理后台:Vben Admin(Vue3 + ant-design-vue)、Vue3(Element Plus)、Vue2(Element UI)
  • 移动端:UniApp(管理后台与商城两套)
  • 代码生成与前端模板类型:通过后端代码生成器支持多种前端模板类型
  • 路由与菜单:后端菜单模型对前端路由行为的影响
  • 开发规范与最佳实践:目录结构、组件库、路由配置、状态管理、UI 设计规范、主题切换、API 对接、表单验证、构建部署、性能优化与浏览器兼容性

项目结构

yudao-cloud 的前端以“多套实现 + 一套代码生成”为核心组织方式:

  • yudao-ui 下包含多个前端工程:
    • yudao-ui-admin-vben:Vue3 + ant-design-vue(Vben Admin)
    • yudao-ui-admin-vue3:Vue3 + Element Plus
    • yudao-ui-admin-vue2:Vue2 + Element UI
    • yudao-ui-admin-uniapp:Vue + UniApp(管理后台)
    • yudao-ui-mall-uniapp:Vue + UniApp(商城)
  • 后端模块 yudao-module-infra 提供代码生成能力,支持多种前端模板类型(含 Vben 模板),并与系统字典中的前端类型枚举关联。

Mermaid Diagram Code:

graph TB
subgraph "前端工程"
Vben["yudao-ui-admin-vben<br/>Vue3 + ant-design-vue"]
Vue3["yudao-ui-admin-vue3<br/>Vue3 + Element Plus"]
Vue2["yudao-ui-admin-vue2<br/>Vue2 + Element UI"]
AdminUni["yudao-ui-admin-uniapp<br/>Vue + UniApp 管理后台"]
MallUni["yudao-ui-mall-uniapp<br/>Vue + UniApp 商城"]
end
subgraph "后端能力"
Gen["代码生成引擎<br/>支持多前端模板类型"]
Dict["系统字典<br/>前端类型枚举"]
Menu["菜单模型<br/>keepAlive/visible/alwaysShow"]
end
Gen --> Dict
Vben --> Gen
Vue3 --> Gen
Vue2 --> Gen
AdminUni --> Gen
MallUni --> Gen
Menu --> Vben
Menu --> Vue3
Menu --> Vue2

图表来源

章节来源

核心组件

  • 多前端模板类型
    • 枚举定义:包含 Vue2、Vue3 标准、Vue3 vben 等类型,用于后端代码生成器选择对应模板。
    • 字典映射:系统字典中存在前端类型枚举值,便于统一管理与配置。
  • 代码生成引擎
    • 针对不同前端类型,映射到对应的模板路径与输出路径,支撑快速生成页面、组件、API 文件等。
  • 菜单模型
    • 后端菜单对象包含可见性、缓存、是否总是显示等字段,直接影响前端路由与页面缓存策略。

章节来源

架构总览

下图展示了前端模板类型与后端代码生成的关系,以及菜单模型如何影响前端路由行为:

Mermaid Diagram Code:

sequenceDiagram
participant Dev as "开发者"
participant Gen as "代码生成引擎"
participant Dict as "系统字典"
participant FE as "前端工程(Vue2/Vue3/Vben)"
participant Menu as "菜单模型"
Dev->>Dict : 选择前端模板类型
Dict-->>Dev : 返回类型枚举值
Dev->>Gen : 触发代码生成(传入模板类型)
Gen->>Gen : 根据类型映射模板路径与输出路径
Gen-->>FE : 输出页面/组件/API 等文件
FE->>Menu : 读取后端菜单(含缓存/可见性/总是显示)
Menu-->>FE : 渲染路由与页面缓存策略

图表来源

详细组件分析

Vben Admin(Vue3 + ant-design-vue)

  • 适用场景
    • 面向中大型后台系统的现代化界面,具备完善的路由、权限、布局与组件生态。
  • 开发要点
    • 目录结构:遵循 Vben Admin 的约定式路由与页面组织方式,页面、组件、API、数据模型按模块划分。
    • 组件库:使用 ant-design-vue 生态组件,结合 Vben Admin 的封装组件。
    • 路由配置:利用后端菜单生成前端路由,结合 keep-alive 缓存策略提升性能。
    • 状态管理:采用 Vben Admin 默认的状态管理模式,或按需扩展。
    • 主题与样式:通过全局样式变量与主题切换实现深浅主题与品牌化定制。
    • 表单验证:结合 Vben Admin 的表单组件与校验规则,实现复杂表单的快速开发。
  • 页面示例
    • 列表页、表单页、详情页、树形结构页等,均由后端代码生成器根据模板类型输出。

章节来源

Vue3(Element Plus)

  • 适用场景
    • 偏向简洁与易用性的后台系统,Element Plus 生态完善,适合快速搭建。
  • 开发要点
    • 目录结构:按模块划分 views、components、api、store 等目录。
    • 组件库:Element Plus + 自定义业务组件。
    • 路由配置:结合后端菜单,启用 keep-alive 与缓存策略。
    • 状态管理:推荐 Pinia 或 Vuex,按模块拆分 Store。
    • 主题与样式:通过 CSS 变量与 Element Plus 主题定制。
    • 表单验证:基于 Element Plus 表单组件与自定义校验规则。

章节来源

Vue2(Element UI)

  • 适用场景
    • 历史遗留系统或对 Vue2 生态有依赖的项目。
  • 开发要点
    • 目录结构:views、components、api、store 等保持清晰分层。
    • 组件库:Element UI 生态,注意版本兼容性。
    • 路由配置:结合后端菜单,合理使用 keep-alive。
    • 状态管理:Vuex 为主,按模块拆分。
    • 主题与样式:通过 SCSS 变量与主题包定制。
    • 表单验证:Element UI 表单组件配合校验规则。

章节来源

UniApp(管理后台与商城)

  • 适用场景
    • 需要同时覆盖 H5、微信小程序、微信公众号等多端的统一开发。
  • 开发规范
    • 目录结构:按模块划分 pages、components、api、store 等;遵循 UniApp 约定式路由。
    • 组件库:使用 UniApp 生态组件,必要时引入第三方 UI 库(需兼容多端)。
    • 跨平台适配:通过条件编译与平台差异处理,保证在不同平台的一致体验。
    • 路由配置:结合后端菜单生成前端路由,注意平台差异。
    • 状态管理:Vuex/Pinia,按模块拆分。
    • 主题与样式:通过全局样式与主题变量实现统一风格。
    • 表单验证:结合 UniApp 表单组件与校验规则。
  • 页面示例
    • 列表页、表单页、详情页、个人中心等,均可通过代码生成器输出。

章节来源

代码生成与前端模板类型

  • 前端模板类型枚举
    • 包含 Vue2、Vue3 标准、Vue3 vben 等类型,用于区分生成模板。
  • 代码生成映射
    • 引擎根据前端类型映射到不同的模板路径与输出路径,生成页面、组件、API 文件等。
  • 系统字典
    • 前端类型枚举值存储在系统字典中,便于统一管理与配置。

Mermaid Diagram Code:

flowchart TD
Start(["开始"]) --> Choose["选择前端模板类型"]
Choose --> Map["根据类型映射模板路径与输出路径"]
Map --> Gen["执行代码生成"]
Gen --> Output["输出页面/组件/API 等文件"]
Output --> End(["结束"])

图表来源

章节来源

菜单模型与前端路由

  • 字段说明
    • 可见性:控制菜单是否展示
    • 缓存:控制页面是否启用 keep-alive
    • 总是显示:控制父子菜单的渲染策略
  • 影响
    • 前端路由可根据这些字段决定页面缓存策略与导航渲染。

Mermaid Diagram Code:

classDiagram
class 菜单模型 {
+可见性
+缓存
+总是显示
}
class 前端路由 {
+根据可见性渲染
+根据缓存启用keep-alive
+根据总是显示调整父子菜单
}
菜单模型 --> 前端路由 : "影响路由行为"

图表来源

章节来源

依赖分析

  • 前端模板类型与代码生成
    • 后端通过枚举与字典管理前端模板类型,代码生成引擎据此输出对应前端文件。
  • 前端与后端菜单
    • 前端路由渲染受后端菜单模型影响,确保前后端一致的导航与缓存策略。

Mermaid Diagram Code:

graph LR
Enum["前端模板类型枚举"] --> Engine["代码生成引擎"]
Dict["系统字典"] --> Engine
Engine --> FE1["Vben Admin"]
Engine --> FE2["Vue3(Element Plus)"]
Engine --> FE3["Vue2(Element UI)"]
Engine --> FE4["Admin UniApp"]
Engine --> FE5["Mall UniApp"]
Menu["菜单模型"] --> FE1
Menu --> FE2
Menu --> FE3
Menu --> FE4
Menu --> FE5

图表来源

章节来源

性能考虑

  • 路由与缓存
    • 合理使用 keep-alive 与页面缓存,减少重复渲染与请求开销。
  • 组件懒加载
    • 对大组件与第三方库进行按需加载,降低首屏体积。
  • 图片与静态资源
    • 使用压缩与懒加载策略,结合 CDN 加速。
  • 构建优化
    • 启用 Tree Shaking、代码分割与产物压缩,减少包体大小。
  • 运行时优化
    • 避免不必要的响应式更新,合理拆分组件与状态。

故障排查指南

  • 菜单不显示或缓存异常
    • 检查后端菜单模型的可见性、缓存与总是显示字段,确认前端路由渲染逻辑。
  • 代码生成结果不符合预期
    • 确认前端模板类型枚举与系统字典配置一致,检查代码生成引擎的模板映射。
  • UniApp 多端表现不一致
    • 使用条件编译与平台差异处理,逐项验证 H5、小程序等平台的行为差异。

章节来源

结论

yudao-cloud 的前端体系以“多套实现 + 代码生成 + 后端菜单驱动”为核心,既能满足不同技术栈与业务形态的需求,又能通过统一的模板类型与字典管理实现高效协同。建议团队根据项目定位与团队技术栈选择合适的前端实现,并严格遵循目录结构、组件库、路由与状态管理规范,结合主题与样式定制、表单验证与 API 对接的最佳实践,完成高质量的前端交付。

附录

  • 页面示例
    • 列表页、表单页、详情页、树形结构页、个人中心等,均可通过代码生成器输出并按需定制。
  • 开发最佳实践
    • 目录结构清晰、组件库统一、路由与状态管理规范化、主题与样式可配置、表单验证完整、API 对接标准化。
  • 构建与部署
    • 使用现代打包工具进行构建,启用产物压缩与缓存策略;针对不同环境配置环境变量与代理;多端 UniApp 项目需分别配置平台参数与发布流程。
  • 性能优化
    • 优先采用懒加载、按需引入、Tree Shaking 与代码分割;关注首屏加载与交互流畅度。
  • 浏览器兼容性
    • 针对目标浏览器范围配置转译与 polyfill;在 UniApp 场景下,关注各平台的兼容性差异并进行针对性处理。
用户文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答