Editor
SkyNoteEditor<TContainer>是应用集成的主要入口,负责引擎、基础插件与渲染适配器的装配。自身不依赖Vue或React。浏览器使用Leafer时,容器类型通常为HTMLElement。
按任务查找
| 专题 | 内容 |
|---|---|
| 节点、连线与选择 | 创建参数、返回ID、查询、修改、组合、删除 |
| 视口、工具与主题 | 坐标转换、缩放、内容适配、只读与工具 |
| 历史与连续编辑 | undo/redo、batch、groupId、几何编辑结束 |
| 事件与释放 | 监听载荷、解绑时机、增量更新与持久化 |
| 文档、媒体与导出 | 导入与恢复差异、资产任务、图片导出 |
| 完整签名索引 | 从源码生成的全部非私有成员、默认参数和返回类型 |
构造参数
new SkyNoteEditor<TContainer>(options)。以下为应用常用选项;字体测量器由渲染适配器提供。
| 参数 | 类型 / 默认值 | 作用 |
|---|---|---|
renderer | RenderAdapter<TContainer>,必填 | 提供渲染器及文字测量能力 |
plugins | readonly SkyNotePlugin[],[] | 在内置插件后安装;相同id会替换已安装者 |
initialView | actual-size,也可为fit-content或preserve | 首次挂载及成功导入/恢复时使用的视口策略 |
initialDoc | CanvasDocument,默认空文档 | 初始文档;外部输入应先校验 |
initialViewport | Partial<ViewportState> | 初始会话视口;需配合preserve避免打开策略覆盖 |
zoomRange | { min: 0.02, max: 8 } | 会话缩放范围 |
readOnly | boolean,false | 限制文档编辑,仍可浏览 |
theme | CanvasThemeConfig,默认浅色 | 画布主题,独立于宿主CSS |
assets | AssetAdapter,可选 | 上传、解析和释放媒体资源 |
ts
export function openEditor(container: HTMLElement): SkyNoteEditor<HTMLElement> {
const editor = new SkyNoteEditor<HTMLElement>({
renderer: new LeaferAdapter(),
initialView: 'fit-content',
readOnly: false,
zoomRange: { min: 0.02, max: 8 }
});
try {
editor.mount(container);
return editor;
} catch (error) {
editor.destroy();
throw error;
}
}示例需要从@skynote/editor和@skynote/renderer-leafer导入对应类型与类,完整文件与本页示例一起参与类型检查。SSR中只在客户端加载并调用。
生命周期
| 接口 | 参数 / 返回值 | 行为与使用时机 |
|---|---|---|
isMounted | boolean | 当前是否存在已挂载渲染器 |
mount(container) | TContainer → void | 容器必须已进入布局且有尺寸;已挂载时先卸载旧渲染器 |
unmount() | void | 释放渲染器、输入桥接和渲染订阅,保留引擎、文档及插件 |
destroy() | void | 释放Editor自身资源、渲染器与引擎插件;页面彻底退出时调用 |
unmount()后的实例可以重新mount();destroy()表示最终销毁,不再复用。宿主自己注册的订阅仍应主动解绑。初始化抛错时销毁已创建实例,避免留下半初始化资源。
已装配能力
Editor内置基础节点、分支连线、视口导航、选择与选区轮廓、编辑快捷键、变换、剪贴板、连线创建/编辑及文字编辑。小地图和业务插件需要显式安装,详见基础插件API。
editor.engine供高级扩展装配或批量事务使用;宿主UI优先使用Editor门面。查询结果即使类型上可读取,也不能绕过事务直接改写持久化实体。
常用入口速查
| 接口 | 用途 |
|---|---|
mount(container) / unmount() / destroy() | 挂载、卸载与最终销毁 |
createNode(request) | 按指定坐标创建节点 |
insertNodeAtViewportCenter(request) | 在视口中心创建节点 |
select(ids) / selectedNodeIds | 设置和读取选择 |
undo() / redo() | 历史操作 |
fitContent() / zoomAt(factor) | 导航 |
applyInitialView(mode) | 适配、100%居中或保持视口 |
exportDocument() / importDocument(value) | 文档导出与校验导入 |
onDocumentChange() / onSelectionChange() | 增量事件与选择订阅 |
创建返回null、导入的ParseResult、媒体任务的状态结果和普通void命令表示不同的失败反馈,不能统一按“没有异常就成功”处理。具体语义见各专题;Vue生命周期见完整接入教程。