VTJ.PRO 在线应用开发平台前端架构

前端架构

VTJ.PRO 前端是一个使用 TypeScript 构建的现代 Vue 3 应用程序,采用模块化架构设计,旨在支持低代码开发和行政管理。它是平台低代码引擎的主要界面,提供了用于应用程序创建的工作台和用于系统治理的管理面板。

应用入口与生命周期

应用程序入口点位于 frontend/src/main.ts,它在挂载 Vue 实例之前协调核心服务的初始化。启动序列包括设置 API 客户端、集成 @vtj/renderer 提供程序以及配置路由系统。

初始化序列:

  1. 服务创建createService 工具初始化基于 Axios 的 API 客户端。
  2. 提供程序设置 :调用 @vtj/renderer 中的 createProvider 来管理低代码运行时上下文。
  3. 认证集成 :初始化 Access 系统,通过 AUTH_CODE 处理静默登录和权限验证。
  4. 挂载:所有异步提供程序就绪后,Vue 应用被挂载到 DOM。

应用引导图

sequenceDiagram participant index.html participant main.ts participant createService participant createProvider participant Access (Auth) participant Vue Instance index.html->>main.ts: 加载模块 main.ts->>createService: 初始化 API 客户端 main.ts->>createProvider: 初始化 @vtj/renderer main.ts->>Access (Auth): 检查认证 / 静默登录 Access (Auth)-->>main.ts: 认证就绪 main.ts->>Vue Instance: app.use(router).mount(...)

路由与布局

前端分为两个主要功能域,每个域通过特定的路由配置和布局组件进行管理。

目的 关键布局
工作台 低代码应用管理、模板和项目工作区 WorkbenchLayout
管理面板 系统管理:用户、角色、LLM 模型和日志 AdminLayout

路由由 vue-router 处理,并实现了路由守卫,以确保用户在访问受保护的视图之前已通过身份验证。

有关这些域中特定视图的详细信息,请参阅 工作台与管理面板视图

多平台运行时架构

VTJ.PRO 通过位于 frontend/src/platform 的统一运行时抽象层,支持多种目标环境(Web、H5 和 UniApp)。该层利用 @vtj/renderer 来解释 DSL(领域特定语言)并动态渲染组件。

平台集成图

有关平台如何处理不同设备目标和本地服务的详细信息,请参阅 多平台运行时(Web、H5、UniApp)

API 客户端与共享工具

前端通过结构化的 API 层与 NestJS 后端进行交互。

  • API 客户端 :使用 Axios 构建,createService 函数处理请求/响应拦截器,包括自动令牌注入和对 401 未授权响应的错误处理。
  • Hooks :共享逻辑封装在 Vue 组合式 API Hooks 中(例如,用于权限检查的 useAccess,用于全局状态的 useApp)。
  • 访问控制Access 模块与后端 RBAC(基于角色的访问控制)系统集成,根据用户权限控制 UI 可见性和路由访问。

子页面

  • 工作台与管理面板视图 --- UI 部分、导航和特定管理视图的详细分解。
  • 多平台运行时(Web、H5、UniApp) --- 平台抽象和 @vtj/renderer 集成的技术深入探讨。

参考资料

相关推荐
Revolution6121 分钟前
React 组件重新渲染时,到底重新执行了什么
前端·react.js·面试
林焱_RPAAI27 分钟前
影刀RPA技术深度:CSS选择器高级实战指南——伪类属性选择器与性能对比完全解析
vue.js·react.js
用户2181697049302 小时前
Flutter(四)Dart语法 空安全 运算符 流程控制
前端
许彰午2 小时前
政务督办的分合模式:主办协办的并发审批
前端·javascript·政务
用户69371750013842 小时前
AI时代,程序员该往哪走?
前端·后端
陳陈陳2 小时前
🚀 前端流式输出革命:SSE + BFF 架构从零到一实战指南
vue.js·架构·node.js
ttwuai2 小时前
GoFrame 后台日志清空失败:无 WHERE 删除为什么被拦住
前端·golang
易筋紫容2 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
半句唐诗3 小时前
我是如何通过 Access Token 成功发布第一个 npm 包的
前端·npm·node.js