设计器与渲染器
本文档介绍了支持 VTJ 低代码体验的可视化设计环境(@vtj/designer
)和运行时渲染系统(@vtj/renderer
)。设计器提供交互式可视化编辑环境,用户可在其中拖放和配置组件;渲染器则负责在设计时预览和运行时环境中执行生成的 DSL 架构。
关于这些系统运行的核心引擎和数据模型,请参阅引擎、提供程序和服务层文档。关于提供实际组件的 UI 组件库,请参阅 UI 组件库文档。
设计器架构
设计器系统通过以 Designer
类为核心的复杂事件驱动架构,提供交互式可视化编辑功能,并与仿真环境深度集成。
核心设计器类
Designer
类作为所有设计时交互的中心协调器,管理以下功能:
- 鼠标事件处理
- 拖放操作
- 元素选择机制
- 视觉反馈系统
设计器通过检测具有特殊属性(__vtj__
、__context__
)的 DOM 元素运行,这些属性使其能够在可视元素与对应数据模型之间建立映射关系。
事件处理系统
设计器实现了一套全面的事件处理系统,能够捕获用户交互并将其转换为设计操作:
事件处理流程包括:
- 原始事件捕获
- 事件分类与路由
- 操作指令生成
- 状态更新与反馈
视觉反馈组件
设计器系统通过覆盖层组件提供实时视觉反馈,突出显示交互元素:
- 悬停高亮
- 选择边框
- 放置区域指示
- 操作状态提示
渲染器架构
渲染器系统为 VTJ DSL 模式提供运行时执行环境,支持多种执行模式和上下文。
上下文系统
Context
类作为运行时执行环境,为组件实例提供以下访问能力:
- 状态管理
- 属性传递
- 生命周期方法
- 实用工具函数
上下文系统支持三种执行模式:
- 设计模式:用于设计时交互的检测元素
- 运行模式:提供生产级执行环境
- VNode 模式:支持无引用(refs)的虚拟节点渲染
多模式渲染
渲染器通过上下文系统在设计时和运行时模式之间无缝切换:
模式切换机制包括:
- 环境状态检测
- 渲染策略切换
- 上下文重配置
- 性能优化调整
设计时集成
设计器和渲染器系统通过基于 iframe 的共享模拟环境集成,支持实时预览和交互。
模拟器架构
模拟器架构包含以下关键组件:
- 沙箱环境隔离
- 双向通信通道
- 状态同步机制
- 资源加载管理
组件检测
在设计模式下,渲染器使用特殊属性检测 DOM 元素,使设计器能够跟踪和操作它们:
检测机制包括:
- 元素标记(
__vtj__
) - 上下文关联(
__context__
) - 属性映射
- 事件代理
视口与响应式设计
设计器提供复杂的视口系统,支持多种设备模式和自定义尺寸调整,便于响应式设计测试。
视口模式
视口系统支持:
- 预设设备尺寸(手机、平板、桌面)
- 自定义视口尺寸
- 方向切换(横屏/竖屏)
- 缩放控制
运行时性能优化
渲染器系统包含多项运行时性能优化,用于区分设计时检测和生产执行。
上下文系统自动管理以下方面以确保性能:
- Vue 实例生命周期
- 引用跟踪
- 资源清理
- 按需渲染
这些优化确保在不同执行模式下保持最佳性能,同时保留设计时检测所需的灵活性。