基本概念
了解 Univer Sheets 的外掛、快照、命令與 Facade API。需要建立編輯器時,請繼續閱讀安裝與基本使用。
基本概念
在進一步深入了解 Univer 前,請先閱讀本節以掌握其基本概念,有助你更順利地使用 Univer。
基本概念包含:
- 外掛(Plugin)
- 快照(Snapshot)
- 命令(Command)
- Facade API
外掛
Univer 的功能皆由外掛提供;外掛是 Univer 的基本組成單元,多個外掛組合即構成一個 Univer 應用。
外掛的職責包含:
- 實作具體功能,例如
@univerjs/sheets-filter提供篩選功能 - 提供底層能力,例如
@univerjs/engine-render提供渲染能力
你可依需求挑選並組合 Univer 所提供的外掛,客製出符合情境的應用,避免載入不必要的程式碼。你亦可撰寫自訂外掛以擴充功能,滿足個別化需求。
相關連結
- 撰寫一個 CSV 匯入外掛 了解如何編寫外掛
- Univer 架構 深入理解架構設計
快照
在 Univer 中需載入「快照」才能載入文件。每種文件類型都有其專屬的快照格式,請參考下列 API 文件以撰寫符合格式的快照:
- 試算表的快照格式為
IWorkbookData - 文件的快照格式為
IDocumentData
功能外掛可透過 resources 欄位儲存資源(如圖片等),可參考外掛自訂模型。
注意事項
注意!Univer 的快照僅用於儲存資料;在執行階段它不會自動反映最新的文件狀態。若你想將當前文件狀態保存為快照,請使用 Facade API 所提供的保存快照方法。
命令
在 Univer 中,所有對資料的修改皆須透過「命令」執行。命令導向的模式可更好追蹤變更,並支援復原、重做、協同編輯與處理多功能間的複雜關聯邏輯。
若你想以命令方式修改文件資料,請參考如何查找命令 ID。若你改用 Facade API 修改,底層其實是由 Facade API 代你組裝參數並執行對應命令。
注意事項
請勿直接修改 snapshot! 這樣不會生效,亦不會觸發視圖或 UI 更新;請透過命令或 Facade API 進行資料修改。
Facade API
由於辦公類應用的複雜度極高,Univer 的架構也相對複雜。為降低使用門檻,我們提供 Facade API——這是對 Univer 官方外掛的封裝,提供更簡潔的介面,協助開發者快速上手。
目前 Facade API 仍在持續完善中,若你有任何建議或需求,歡迎於 GitHub 提出 issue。
當然,簡化的同時亦代表取捨;若你需要更進階的自訂能力,則需在理解 Univer 架構後,直接使用較底層的命令與模組所曝露的 API。
相關連結
預設模式與外掛模式
Univer 採用外掛化的設計理念,旨在為開發者提供一個彈性、可擴充的電子文件應用框架。透過外掛式設計,Univer 能輕鬆整合各類功能模組,以滿足不同使用者的需求。但此種設計也提高了應用的複雜度,尤其對初次接觸 Univer 的開發者來說可能較陌生。
為此,Univer 提供 外掛模式 與 預設模式 兩種方式協助你快速整合與使用。所謂「預設」其實就是一組預先配置好的外掛組合;在無需進行進階擴充的情況下,兩種模式能提供的能力是等同的。
注意事項
- 相依套件版本需一致:無論使用預設模式或外掛模式,請務必確保所有相依套件的版本號保持一致。
- 謹慎混用外掛與預設:若某個外掛已被某個預設包含,使用該預設時就不需再額外單獨引入,否則可能導致衝突或功能異常。
預設模式與外掛模式的差異:
| 外掛模式 | 預設模式 |
|---|---|
| 需要手動引入對應的 Facade 套件 | 無需手動引入任何 Facade 套件 |
| 需注意同類型功能外掛的註冊順序 | 預設內已處理註冊順序,無需關注 |
| 支援按需(懶)載入 | 設定的預設會在初始化時同步載入 |
你覺得這篇文檔如何?