基本概念
了解 Univer Docs 的外掛、快照、命令與 Facade API。需要建立編輯器時,請繼續閱讀安裝與基本使用。
基本概念
在進一步深入瞭解 Univer 之前,請閱讀本篇文件以瞭解 Univer 的基本概念,將有助於你更順利地使用 Univer。
基本概念包括:
- 外掛 Plugin
- 快照 Snapshot
- 命令 Command
- Facade API
外掛
Univer 的功能均由外掛提供,外掛是 Univer 的基本組成單元,多個外掛組合在一起構成了 Univer 應用。
外掛的職責包括:
- 實現功能,例如
@univerjs/docs-hyper-link提供 Univer Docs 的超連結模型和命令 - 提供某種基礎能力,例如
@univerjs/engine-render提供渲染能力
你可以按照自己的需要組合 Univer 提供的外掛,客製出符合你的需求的 Univer 應用,避免載入多餘程式碼。你也可以透過編寫外掛來擴充 Univer 的功能,滿足個別化需求。
相關連結
快照
Univer Docs 使用 IDocumentData 作為快照格式,它描述文件正文、文件層級樣式、頁首和頁尾、繪圖、清單、表格和外掛資源。
可選的 resources 欄位用於儲存外掛定義的資料。
注意事項
注意!Univer 的快照僅用於儲存資料,在執行時,它並不會反映最新的文件狀態!如果你想把文件狀態儲存為快照,請使用 Facade API 上的儲存快照的方法。
命令
在 Univer Docs 中,文件內容和格式的修改都透過命令執行。這樣可以追蹤變更,實現復原、重做和協同編輯,並協調相關功能。
Facade API 會在背後準備參數並執行對應的 Docs 命令。
注意事項
請不要直接修改 snapshot! 這不會生效,不會觸發檢視或者 UI 的更新,請透過命令或者 Facade API 來修改資料。
Facade API
由於辦公應用的複雜度非常高,Univer 的架構相應地也非常複雜,為了讓開發者更容易地使用 Univer,我們提供了 Facade API,它是對 Univer 第一方外掛的封裝,提供了更簡單的介面,讓開發者可以更容易地使用 Univer。
目前 Facade API 在不斷完善中,如果你有任何建議或者需求,歡迎在 GitHub 上提 issue。
Facade API 是對底層細節的抽象,雖然它簡化了常見任務,但實現複雜功能時可能需要你了解 Univer 的架構並直接使用底層 API。
相關連結
預設模式與外掛模式
Univer 採用了外掛化的設計理念,旨在為開發者提供一個靈活、可擴充的電子文件應用框架。透過外掛化設計,Univer 可以輕鬆地整合各種功能模組,從而滿足不同使用者的需求。但外掛化的設計會增加應用的複雜性,尤其是對於首次接觸 Univer 的開發者來說。
為此,Univer 提供了外掛模式和預設模式兩種方式幫助你快速整合和使用 Univer。所謂預設實際上就是一組預先配置好的外掛組合,因此在無需進行復雜擴充的情況下,兩者所提供的能力是相同的。
注意事項
- 依賴版本需一致:無論是使用預設模式還是外掛模式的方式,你都必須保證所有依賴的版本號一致。
- 謹慎混用外掛和預設:如果一個外掛已經被包含在某個預設中,那麼在使用預設時就不需要再單獨引入該外掛了。否則可能會導致外掛衝突或功能異常。
預設模式與外掛模式的區別:
| 外掛模式 | 預設模式 |
|---|---|
| 需要手動引入對應的 facade 包 | 無需手動引入任何 facade 包 |
| 需要注意同型別功能外掛註冊順序 | 同功能被包含在預設中無需關注註冊順序 |
| 支援按需懶載入 | 設定的預設會在初始化時同步載入 |
你覺得這篇文檔如何?