基本概念
Univer Docs のプラグイン、スナップショット、コマンド、Facade API を理解します。エディタの作成手順はインストールと基本的な使い方を参照してください。
基本概念
Univer をさらに理解する前に、基本概念を把握しておくとスムーズに進められます。
基本概念は次のとおりです。
- プラグイン Plugin
- スナップショット Snapshot
- コマンド Command
- Facade API
プラグイン
Univer の機能はすべてプラグインで提供されます。プラグインは Univer の基本構成要素で、複数のプラグインを組み合わせて Univer アプリを構成します。
プラグインの役割は次のとおりです。
- 機能の実装(例:
@univerjs/docs-hyper-linkは Univer Docs のハイパーリンクモデルとコマンドを提供) - 基盤機能の提供(例:
@univerjs/engine-renderは描画機能を提供)
必要なプラグインだけを組み合わせてアプリを構成できるため、不要なコードを避けられます。独自プラグインを作成して機能を拡張することも可能です。
関連リンク
- ハイパーリンク(preset モードまたは plugin モードで Docs の機能を追加する方法)
- Univer アーキテクチャ
スナップショット
Univer Docs のスナップショット形式は IDocumentData です。本文、文書レベルのスタイル、ヘッダーとフッター、描画、リスト、表、プラグインリソースを記述します。
任意の resources フィールドには、プラグインが定義したデータを保存します。
注意事項
注意:Univer のスナップショットはデータ保存専用で、実行時の最新状態は反映されません。最新状態を保存したい場合は、Facade API のスナップショット保存メソッドを使用してください。
コマンド
Univer Docs では、文書の内容や書式の変更はコマンド経由で実行されます。これにより、変更履歴の追跡、Undo/Redo、共同編集、関連機能の連携が可能になります。
Facade API は内部でパラメーターを準備し、対応する Docs コマンドを実行します。
注意事項
スナップショットを直接変更しないでください。 反映されず、ビューや UI の更新も行われません。コマンドまたは Facade API を使用してください。
Facade API
オフィスアプリは複雑なため、Univer のアーキテクチャも複雑です。そこで Facade API を提供し、第一級プラグインをラップしたシンプルなインターフェースで利用できるようにしています。
Facade API は現在も継続的に改善中です。要望や提案があれば GitHub で issue を立ててください。
Facade API は低レベルの詳細を抽象化しています。一般的なタスクは簡素化されますが、複雑な機能を実装するには、Univer のアーキテクチャを理解した上で、より低レベルのコマンドやモジュールの API を利用する必要がある場合があります。
関連リンク
プリセットモードとプラグインモード
Univer はプラグイン志向の設計で、柔軟で拡張可能なドキュメントアプリ基盤を提供します。プラグイン構成により機能モジュールを容易に統合できますが、初めて触れる開発者にとっては複雑に感じることがあります。
そのため Univer では プラグインモード と プリセットモード の 2 つを用意し、素早く導入できるようにしています。プリセットは事前に構成されたプラグインの組み合わせで、複雑な拡張をしない限り両者の機能は同等です。
注意事項
- 依存バージョンの一致:プリセット/プラグインどちらの方法でも、依存関係のバージョンは揃える必要があります。
- プリセットとプラグインの併用に注意:プリセットに含まれるプラグインを重複して読み込むと、衝突や不具合の原因になります。
プリセットモードとプラグインモードの違い:
| プラグインモード | プリセットモード |
|---|---|
| 対応する facade パッケージを手動で読み込む必要がある | facade パッケージの手動読み込みは不要 |
| 同種の機能プラグインの登録順に注意が必要 | プリセット内の機能は登録順を気にしなくてよい |
| 必要に応じた遅延読み込みが可能 | 設定したプリセットは初期化時に同期的に読み込まれる |
このガイドはいかがですか?