畫板資料結構
IBoardData
IBoardData 是 Univer Boards 使用的快照格式,用於描述一個畫板單元,包括頁面順序、頁面資料、資源、主題、作用中頁面、縮放比例,以及畫板層級設定。
屬性
| 屬性 | 類型 | 說明 |
|---|---|---|
| id | string | 畫板單元的唯一 ID。 |
| rev? | number | 供持久化或協作層使用的選用修訂值。 |
| name | string | 畫板名稱。 |
| appVersion | string | 建立此快照的套件版本。 |
| locale? | string | 畫板的語系。 |
| defaultPageSize | IBoardPageSize | 畫板頁面的預設頁面大小。 |
| pageOrder | string[] | 依序排列的畫板頁面 ID 清單。 |
| pages | Record\<string, IBoardPage\> | 以頁面 ID 為鍵的頁面快照。 |
| activePageId? | string | 作用中頁面的 ID。 |
| theme? | IBoardThemeData | 目前的畫板主題。 |
| themes? | Record\<string, IBoardThemeData\> | 其他具名主題。 |
| zoomRatio? | number | 目前的縮放比例。 |
| resources? | IResources | 圖片、富文字、表格及其他元素使用的外部資源。 |
| custom? | `Record<string, unknown> | null` |
| boardSettings? | IBoardSettings | 畫板層級的 UI 與互動設定。 |
頁面資料
IBoardPage 會依 ID 儲存元素,並使用 elementOrder 定義算繪順序。自行建構快照時,請讓這兩種結構保持同步。
TypeScript
const boardData = { id: 'board-1', name: 'Planning board', appVersion: '1.0.0', defaultPageSize: { width: 1920, height: 1080 }, pageOrder: ['page-1'], pages: { 'page-1': { id: 'page-1', pageType: 'page', name: 'Page 1', elementOrder: ['text-1'], elements: { 'text-1': { id: 'text-1', type: 'text', transform: { left: 120, top: 96, width: 240, height: 80 }, text: 'Kickoff', }, }, }, }, activePageId: 'page-1',}用途
IBoardData 主要用於:
- 建立
UniverInstanceType.UNIVER_BOARD單元。 - 持久化及還原畫板文件。
- 準備匯入、匯出或伺服器端處理所需的資料。
- 在算繪前,預先為畫板加入頁面、元素與設定。
快照物件是持久化資料。畫板開始執行後,請優先使用 Facade API,不要直接修改快照物件。
你覺得這篇文檔如何?