当前位置: 首页 > news >正文

VTJ.PRO 在线应用开发平台多平台运行时(Web, H5, UniApp)

多平台运行时(Web, H5, UniApp)

VTJ.PRO 平台提供了一个统一的运行时架构,旨在不同的环境中执行低代码应用,包括标准的桌面 Web、移动端 H5 以及 UniApp(跨平台小程序/移动端)。这是通过位于frontend/src/platform目录中的解耦提供者-服务模式实现的,该模式将特定于环境的逻辑从核心的@vtj/renderer中抽象出来。

运行时架构概览

运行时系统在低代码 DSL(领域特定语言)和物理执行环境之间架起桥梁。它依赖于三个主要层次:

  1. 核心渲染器@vtj/renderer负责将 DSL 转换为 Vue 3 组件。
  2. 平台提供者:通过createProvider创建,此层为渲染器提供必要的服务(API、路由、存储)。
  3. 平台服务:特定于实现的类(例如LocalService),负责根据ContextMode处理数据持久化和资源获取。

平台桥接图

下图说明了平台抽象层如何将通用的渲染器连接到特定于环境的实现。

关键抽象:ContextMode 和 NodeEnv

运行时行为由两个定义执行上下文的主要枚举控制。

ContextMode

ContextMode决定了目标 UI 框架和环境约束:

  • Web:标准桌面浏览器环境,使用@vtj/web
  • H5:移动端浏览器环境。
  • UniApp:用于小程序和原生移动端的跨平台运行时。

NodeEnv

NodeEnv定义了应用的生存周期阶段:

  • Development:启用热重载、调试日志,并连接到开发 DSL 服务器。
  • Production:针对性能进行优化,使用静态/已发布的 DSL 文件。

平台提供者(createProvider

createProvider函数是初始化运行时环境的入口点。它返回一个Provider对象,@vtj/renderer使用该对象与外部世界进行交互。

实现细节

提供者封装了:

  • 服务:一个LocalService实例,用于对应用、页面和块执行 CRUD 操作。
  • 适配器:处理特定平台的导航和资源加载的函数。
// 创建提供者的示例 export const createProvider = (options: ProviderOptions) => { const { mode, env, config } = options; const service = new LocalService(config); // ... 将服务桥接到渲染器需求的逻辑 return { service, mode, env, }; };

LocalService 和数据流

LocalService类定义在frontend/src/platform/service.ts中,它扩展了来自@vtj/localBaseService。它作为运行时的数据抽象层(DAL)。

职责

  1. DSL 检索:从本地存储(开发环境)或远程 URL(生产环境)获取应用 JSON 模式。
  2. 资源管理:解析组件库和远程脚本等依赖项。
  3. 持久化:在低代码设计过程中处理用户状态或临时覆盖的保存。

平台特定配置

平台入口组件服务实现路由策略
Web@vtj/webLocalServiceVue Router (History/Hash)
H5@vtj/web(移动端模式)LocalServiceVue Router (Hash)
UniApp@vtj/uniLocalServiceUniApp 原生路由

Web vs. H5 运行时

Web 和 H5 都使用@vtj/web,但它们的ContextMode不同。此模式会标记渲染器,使其应用适合触摸界面或鼠标驱动桌面的不同 CSS 重置和视口配置。

UniApp 集成

UniApp 运行时需要一个专门的适配器,因为它不在标准的 DOM 环境中运行。UniApp 模式下的LocalService使用uni.requestuni.getStorage,而不是标准的fetchlocalStorage

参考资料

  • 官网文档:https://vtj.pro/
  • 在线平台:https://app.vtj.pro/
  • 开源仓库:https://gitee.com/newgateway/vtj
http://www.jsqmd.com/news/581374/

相关文章:

  • 实战指南:基于快马平台与accelerate,快速微调大语言模型解决分类问题
  • 3种方法让微信聊天记录成为你的数字资产:WeChatMsg全攻略
  • CogVideoX-2b企业应用:品牌宣传视频低成本制作新思路
  • Axure RP 本地化界面优化指南:5分钟实现高效设计工作流
  • 5个维度彻底掌握UE5-MCP:从入门到精通的AI驱动游戏开发自动化
  • ai赋能ubuntu开发:用快马平台构建智能文件管理与分析工具
  • Phi-4-mini-reasoning在AI面试官场景:编程题逻辑审查与评分建议
  • Real-ESRGAN-ncnn-vulkan 实践指南:从模糊到高清的图像增强深度解析
  • 3步解锁QQ音乐加密格式:qmcdump音频自由终极方案
  • 探讨2026年性价比高的冻干机,冻干机哪家公司好 - 工业设备
  • 深聊塑料瓶封口垫片收费,上海靠谱厂家哪家比较好 - 工业品网
  • Linux内核优化与BBR拥塞控制算法深度解析
  • 突破4大瓶颈:4步实现Hyper-V设备直通性能飞跃
  • AI绘画提示词从入门到精通,看这篇保姆级解析就够了!
  • 最新版310版本绿豆UI9+后台源码+TV版APK+手机版APK
  • intv_ai_mk11效果展示:通用问答/改写/解释三类任务真实生成案例集
  • Akagi雀魂AI助手:5分钟快速上手指南,让你的麻将水平提升一个档次
  • 深入理解ThreadLocal
  • G-Helper开源工具:华硕笔记本色彩配置文件(ICC Profile)丢失的完整解决方案
  • 革新性键盘映射工具:QKeyMapper让Windows按键自定义无需重启
  • 选购汉安物业管理服务要注意啥,陕西口碑好的有哪些? - 工业品牌热点
  • 3步规范Zotero文献格式:让你的文献库告别混乱烦恼
  • 云容笔谈入门指南:理解‘书案交互’设计哲学与参数调整的美学逻辑
  • 甲言:破解古汉语NLP难题的专业工具包
  • 如何高效掌控华硕笔记本性能:GHelper完整硬件控制指南
  • PyInstaller Extractor 终极指南:3分钟学会提取PyInstaller打包文件内容
  • 联想拯救者笔记本性能管理完全指南:Lenovo Legion Toolkit的智能配置与优化方案
  • 如何掌控你的数字对话:WeChatMsg的数据主权解决方案
  • 2026年江浙沪皖川钜宏不锈钢价格多少,外观美观吗可信度高吗值得买吗 - myqiye
  • JESD22-B112C Package Warpage Measurement of Surface-Mount Integrated Circuits at Elevated Temperatur