简介基础概念

基本概念

💡

建议在完成了任意一种类型文件的 “快速开始” 章节后再阅读本章节内容。

在进一步深入了解 Univer 之前,请阅读本篇文档以了解 Univer 的基本概念,将有助于你更顺利地使用 Univer。

基本概念包括:

  • 插件 Plugin
  • 快照 Snapshot
  • 命令 Command
  • Facade API

插件

Univer 的功能均由插件提供,插件是 Univer 的基本组成单元,多个插件组合在一起构成了 Univer 应用。

插件的职责包括:

  1. 实现功能,例如 @univerjs/sheets-filter 提供筛选功能
  2. 提供某种基础能力,例如 @univerjs/engine-render 提供渲染能力

你可以按照自己的需要组合 Univer 提供的插件,定制符合你的需求的 Univer 应用,避免加载多余代码。你也可以通过编写插件来扩展 Univer 的功能,满足个性化的需求。

相关链接

  1. 编写一个 CSV 导入插件 了解如何编写一个插件
  2. Univer 架构 详细了解 Univer 的架构设计

快照

你需要在 Univer 中加载快照来加载文档,每种类型的文档都提供了自己的快照格式,请参考以上 API 文档了解如何编写符合格式要求的快照:

  1. 电子表格的快照格式是 IWorkbookData
  2. 单元格数据结构 介绍了单元格的数据结构
  3. 文档的快照格式是 IDocumentData

功能插件可以通过 resources 字段来存储资源,例如图片等等,可参考 插件自定义模型

⚠️

注意!Univer 的快照仅用于存储数据,在运行时,它并不会反映最新的文档状态!如果你想把文档状态保存为快照,请使用 Facade API 上的保存快照的方法。

相关链接

  1. 入门示例 了解如何加载、保存快照

命令

在 Univer 中,对于数据的修改都需要通过命令执行,基于命令的方式可以更好地追踪值的变化,并且能够实现撤销、重做和协同编辑等功能,以及处理功能之间复杂的关联逻辑等等。

如果你想通过命令的方式修改文档数据,请参考 如何查找命令 ID。如果你选择通过 Facade API 来修改文档数据,实际上 Facade API 在背后会为你准备参数并执行命令。

⚠️

请不要直接修改 snapshot! 这不会生效,不会触发视图或者 UI 的更新,请通过命令或者 Facade API 来修改数据。

相关链接

  1. 入门示例 了解如何通过 Facade API 修改数据

Facade API

由于办公应用的复杂度非常高,Univer 的架构相应地也非常复杂,为了让开发者更容易地使用 Univer,我们提供了 Facade API,它是对 Univer 第一方插件的封装,提供了更简单的接口,让开发者可以更容易地使用 Univer。

目前 Facade API 在不断完善中,如果你有任何建议或者需求,欢迎在 GitHub 上提 issue。

当然,简单性是有代价的,如果你需要更高级的自定义能力,就需要在了解 Univer 架构的基础上使用更加底层的命令和模块所暴露的 API。

相关链接

  1. Facade API 介绍
  2. Facade API 常用方法
  3. Facade Sheet API 常用方法
  4. Univer Docs API 常用方法