Facade API
瞭解如何在應用中新增 Facade API,簡化對 Web SDK 的複雜架構的使用。
為了應對複雜的需求,Univer 的架構也較為複雜,這可能會給使用造成一些困難,為此我們提供了一個更加簡單易用的面板 API(Facade API)。
本小節將詳細介紹如何在應用中新增 Facade API,後續的 “功能” 章節中,我們將列出每個功能的主要 Facade API,如果你想檢視所有的 Facade API,請參考各個外掛的 API 文件。
注意事項
部分 Facade API 是非同步的,特別是修改資料的 API,它們大多會返回一個 Promise。如果你需要再修改資料後立即獲取資料,請使用 await 或者 .then(),否則可能會獲取到不符合預期的結果。想要了解具體有哪些 API 會返回 Promise,請檢視對應的 API 參考手冊。
外掛模式引入 Facade API
安裝
對於透過外掛模式安裝 Univer 的情況下,Facade API 的實現被分散到各個外掛中,並掛載到全域性的 Facade API 根物件上,這意味著對於那些提供了 Facade API 的外掛,你可以按需引入他們對應的 Facade API 實現。
import { FUniver } from '@univerjs/core/facade'import '@univerjs/ui/facade'import '@univerjs/docs/facade'import '@univerjs/docs-ui/facade'注意事項
並非所有外掛都包含了 facade 包,我們會在每個功能的文件對此進行說明。
使用
Facade API 是對 Univer 例項的封裝,因此你需要在建立了 Univer 例項之後,再用 FUniver 包裹該例項:
import { FUniver } from '@univerjs/core/facade'const univerAPI = FUniver.newAPI(univer)注意事項
並非所有的 Facade API 都可以被即時呼叫,有些 API 需要在特定的生命週期階段才能使用,遇到即時執行無法生效的情況,請參照以下方式選擇合適的生命週期執行:
const disposable = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, ({ stage }) => { if (stage === univerAPI.Enum.LifecycleStages.Rendered) { // 在生命週期階段為 Rendered 時執行的程式碼 } if (stage === univerAPI.Enum.LifecycleStages.Steady) { // 在生命週期階段為 Steady 時執行的程式碼 }})預設模式引入 Facade API
如果你透過預設模式安裝 Univer,它會自動引入所含功能的 Facade API,並在你建立 Univer 例項時返回一個對應的 Facade API 例項 univerAPI,直接使用即可。
你覺得這篇文檔如何?