BlockSuite協(xié)作編輯器
BlockSuite 是一個多人協(xié)作編輯器,支持多用戶同時編輯一份文件,并且可以即時看到對方的編輯。BlockSuite 基于 local-first 理念,底層使用了 CRDT 庫 yjs,還支持嵌入到任意不同框架 (React 、Vue 、Angular)。
BlockSuite 的工作方式不同于傳統(tǒng)的富文本編輯器:
- 在數(shù)據(jù)模型上,BlockSuite 沒有實現(xiàn)事件溯源模式 (event sourcing),而是提供了一個直接基于 Yjs 的 block 樹(底層采用 CRDT),支持開箱即用。它的數(shù)據(jù)持久層也被設(shè)計成本地優(yōu)先 (local-first)。
- 對于富文本編輯,BlockSuite block 樹中的多個不同節(jié)點可以連接到不同的富文本編輯組件,從而將富文本內(nèi)容建模為多個 UI 組件而不是單個 UI 容器,從而消除了危險的單體應(yīng)用
contenteditale。 - 對于渲染層,BlockSuite 并不假設(shè)內(nèi)容只能通過 DOM 來渲染。它不僅實現(xiàn)了基于 Web Components 的基本文檔編輯 UI ,還為部分白板內(nèi)容開發(fā)了基于 Canvas 的混合渲染器。兩個渲染器可以共存于同一個頁面上,并從同一個商店更新。
評論
圖片
表情
