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