基本概念
在进一步深入了解 Univer 之前,请阅读本篇文档以了解 Univer 的基本概念,将有助于你更顺利地使用 Univer。
基本概念包括:
- 插件 Plugin
- 快照 Snapshot
- 命令 Command
- Facade API
插件
Univer 的功能均由插件提供,插件是 Univer 的基本组成单元,多个插件组合在一起构成了 Univer 应用。
插件的职责包括:
- 实现功能,例如
@univerjs/sheets-filter
提供筛选功能 - 提供某种基础能力,例如
@univerjs/engine-render
提供渲染能力
你可以按照自己的需要组合 Univer 提供的插件,定制符合你的需求的 Univer 应用,避免加载多余代码。你也可以通过编写插件来扩展 Univer 的功能,满足个性化的需求。
相关链接
- 编写一个 CSV 导入插件 了解如何编写一个插件
- Univer 架构 详细了解 Univer 的架构设计
快照
你需要在 Univer 中加载快照来加载文档,每种类型的文档都提供了自己的快照格式,请参考以上 API 文档了解如何编写符合格式要求的快照:
- 电子表格的快照格式是
IWorkbookData
- 单元格配置 介绍了单元格的数据结构
- 文档的快照格式是
IDocumentData
功能插件可以通过 resources
字段来存储资源,例如图片等等,可参考 插件自定义模型。
注意!Univer 的快照仅用于存储数据,在运行时,它并不会反映最新的文档状态!如果你想把文档状态保存为快照,请使用 Facade API 上的保存快照的方法。
相关链接
- 入门示例 了解如何加载、保存快照
命令
在 Univer 中,对于数据的修改都需要通过命令执行,基于命令的方式可以更好地追踪值的变化,并且能够实现撤销、重做和协同编辑等功能,以及处理功能之间复杂的关联逻辑等等。
如果你想通过命令的方式修改文档数据,请参考 如何查找命令 ID。如果你选择通过 Facade API 来修改文档数据,实际上 Facade API 在背后会为你准备参数并执行命令。
请不要直接修改 snapshot! 这不会生效,不会触发视图或者 UI 的更新,请通过命令或者 Facade API 来修改数据。
相关链接
- 入门示例 了解如何通过 Facade API 修改数据
Facade API
由于办公应用的复杂度非常高,Univer 的架构相应地也非常复杂,为了让开发者更容易地使用 Univer,我们提供了 Facade API,它是对 Univer 第一方插件的封装,提供了更简单的接口,让开发者可以更容易地使用 Univer。
目前 Facade API 在不断完善中,如果你有任何建议或者需求,欢迎在 GitHub 上提 issue。
当然,简单性是有代价的,如果你需要更高级的自定义能力,就需要在了解 Univer 架构的基础上使用更加底层的命令和模块所暴露的 API。