Skip to content

Serialization(序列化)

概述

Rendx 支持将场景图序列化为 JSON,用于保存、回放、协作编辑。

使用方式

typescript
// 序列化
const json = app.toJSON();
localStorage.setItem('scene', JSON.stringify(json));

// 反序列化(创建新实例)
const saved = JSON.parse(localStorage.getItem('scene')!);
const newApp = App.fromJSON(saved);
newApp.mount(container);
newApp.render();

// 就地恢复(保留挂载和插件)
app.restoreFromJSON(saved);
app.render();

RendxJSON 类型

typescript
interface RendxJSON {
  width: number;
  height: number;
  layers: LayerJSON[];
}

interface LayerJSON {
  name: string;
  index: number;
  children: ChildJSON[];
}

interface ChildJSON {
  type: 'node' | 'group';
  // Node: shape + attrs
  // Group: children
}

API

函数说明
serialize(layers, width, height)序列化层数组 → RendxJSON
deserialize(json, cfg)反序列化 → Layer[]
serializeLayer(layer)序列化单个层