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-ui/facade'注意事項
並非所有外掛都包含 facade 套件;我們會在每個功能的文件中加以說明。
使用
Facade API 是對 Univer 實例的封裝,因此你需要在建立 Univer 實例之後,再用 FUniver 包裹該實例:
import { FUniver } from '@univerjs/core/facade'const univerAPI = FUniver.newAPI(univer)預設模式引入 Facade API
如果你透過預設模式安裝 Univer,它會自動引入所含功能的 Facade API,並在你建立 Univer 實例時回傳對應的 Facade API 實例 univerAPI,可直接使用。
注意事項
並非所有的 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 階段執行的程式 }})你覺得這篇文檔如何?