Снимок Base

IBaseSnapshot

IBaseSnapshot — это формат хранения данных, который используется в Univer Bases. Он описывает один экземпляр Base, включая таблицы, порядок таблиц, версию схемы, временные метки и необязательные метаданные ревизии.

Свойства

СвойствоТипОписание
idstringУникальный идентификатор экземпляра Base.
namestringНазвание Base.
schemaVersionnumberВерсия схемы снимка.
tablesRecord\<string, ITableSnapshot\>Таблицы, где ключом служит идентификатор таблицы.
tableOrderstring[]Упорядоченный список идентификаторов таблиц.
createdAtnumberВременная метка создания.
updatedAtnumberВременная метка обновления.
createdBy?stringИдентификатор создателя.
rev?numberНеобязательный номер ревизии, используемый уровнями хранения данных или совместной работы.

Минимальный снимок

TypeScript
const baseSnapshot = {  id: 'base-1',  name: 'Product tracker',  schemaVersion: 1,  tableOrder: ['tasks'],  tables: {    tasks: {      id: 'tasks',      name: 'Tasks',      primaryFieldId: 'title',      fieldOrder: ['title', 'status'],      fields: {        title: { id: 'title', name: 'Title', type: 'text', config: {} },        status: { id: 'status', name: 'Status', type: 'singleSelect', config: {} },      },      recordOrder: ['rec-1'],      records: {        'rec-1': {          id: 'rec-1',          values: { title: 'Write docs', status: 'In progress' },          orderKey: 'a0',          createdAt: Date.now(),          updatedAt: Date.now(),        },      },      views: {},      viewOrder: [],    },  },  createdAt: Date.now(),  updatedAt: Date.now(),}

Использование

IBaseSnapshot используется главным образом для следующих задач:

  1. Создание экземпляра UniverInstanceType.UNIVER_BASE.
  2. Сохранение и восстановление структурированных данных.
  3. Подготовка данных для обработки на стороне сервера.
  4. Передача данных между сервисами совместной работы и импорта/экспорта.

Объекты снимков содержат данные для хранения. После запуска Base вместо непосредственного изменения объекта снимка используйте API Facade.

Сохранение и восстановление

Facade save() включает ресурсы зарегистрированных плагинов, например панели и локальные комментарии. saveToBackend — функция сохранения вашего приложения.

TypeScript
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await saveToBackend(base.save())

В новом редакторе зарегистрируйте те же плагины перед univerAPI.createBase(savedSnapshot). Не сохраняйте только tables и не изменяйте снимок работающей модели напрямую.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.