
本文档介绍了为 VTJ 低代码平台提供支持的基本架构组件,包括 Engine 编排层、Provider 服务系统、数据模型和代码生成管道。有关 UI 组件库和 widget 系统的信息,请参阅 UI 组件库 。有关特定于平台的实施,请参阅平台实施 。
VTJ 架构围绕三个主要编排组件构建:用于设计时管理的 Engine、用于运行时服务的 Provider 和用于基于 iframe 的渲染的 Simulator。

类 Engine 充当设计时环境的中央业务流程协调程序。它通过几个关键职责来管理整个生命周期:
Service 界面协调 ProjectModel 实例和文件操作Assets 类处理材质加载和组件注册
Provider 类跨不同执行模式(ContextMode.Design、ContextMode.Runtime、ContextMode.Raw)管理运行时服务和资源加载。关键架构模式包括:
createSchemaApis 创建和管理基于 schema 的 API数据层以反应式模型为中心,这些模型通过事件驱动架构管理项目状态和组件定义。

ProjectModel 管理完整的项目状态,包括页面、块、依赖项和配置。它实现了几个关键模式:
PageFile 和 BlockFile 的 CRUD 操作,包括验证和事件发出Service 层触发持久性web、h5、uniapp)关键作包括用于文件管理的 createPage()、createBlock()、setDeps() 和 active(), 每个作都会触发相应的事件以进行 UI 同步。

BlockModel 将单个组件或页面表示为 NodeModel 实例的树。该架构支持:
VTJ 通过复杂的解析和代码生成管道实现 Vue 单文件组件 (SFC) 和低代码 DSL 之间的双向转换。

渲染管道通过几个阶段将 BlockSchema 定义转换为可执行的 Vue 组件:
Schema、UrlSchema、Plugin 类型)defineAsyncComponent 支持通过 loaders 进行缓存的延迟加载组件CreateRendererOptions 提供包括 Vue 实例、组件库和 API 在内的运行时上下文
双向转换系统支持视觉设计和代码之间的无缝过渡:
@vtj/parser将 Vue SFC 转换为 BlockSchema 以进行可视化编辑@vtj/coder 包从 BlockSchema 定义生成完整的 Vue 项目Service.saveFile() 和 Service.getFile() 进行的文件作保持同步Engine.applyAI() 方法使 AI 生成的 DSL 能够集成到设计工作流程中Engine.genSource() 方法编排完整的代码生成过程,而 createRawPage() 支持具有可视化组件和基于代码的组件的混合工作流。
运行时系统通过分层上下文架构管理不同模式和平台上的组件执行

运行时体系结构根据 ContextMode 调整行为:
模拟器会创建一个隔离的 iframe 环境 (contentWindow),其中包含自己的 SimulatorEnv:
Web 与 uniapp 平台的不同应用程序创建策略
特定于平台的运行时创建可处理不同的执行环境:
setupUniApp() 和 UniH5 运行时集成进行专门设置Provider.install() 方法管理跨平台的插件安装和全局属性设置。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。