国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

僅僅28行代碼,就能實現一個【協同文檔】

freeflydom
2025年4月14日 10:7 本文熱度 408

協同文檔

在平時的開發中,協同文檔真的幫助到了我們很多,他可以應用到很多場景,比如:

  • 需求文檔同步
  • 信息收集
  • 公司內部文檔編寫

所以現階段協同文檔也是市面上很火的一種趨勢,比較火的產品有:

  • 企微文檔
  • 飛書文檔
  • 語雀
  • 等等。。。。

協同

想要實現協同文檔,其實有一個最大的痛點,那就是 協同。

通俗點說就是:兩個人同時編輯同一個文檔,就會有沖突,那么這個沖突應該怎么解決?

為了解決這個問題,市面上出現了兩種算法(不是本文重點)

  • OT (Operational transformation)
  • CRDT(Conflict-free Replicated Data Type)

這不是本文重點,如果不想看可以直接跳到下面的代碼實戰~

OT

實現協同文檔

接下來開始實現一個簡單的協同文檔?。?!

裝庫

我們需要先安裝幾個庫

npm i yjs y-quill 
      quill quill-cursors 
      y-websocket
  • yjs: 一個集成 CRDT 算法的同步庫,是此次協同文檔的核心
  • quill: 一個富文本編輯器
  • quill-cursors: 一個quill的插件,用于顯示多個光標,因為多個用戶共同編輯就會有多個光標
  • y-quill: 可以理解為他能將yjs和quill融合起來,實現協同
  • y-websocket: 一個yjs的庫,作用是將數據同步到多個客戶端

客戶端

<div id="app"></div>
import * as Y from 'yjs';
import { QuillBinding } from 'y-quill';
import Quill from 'quill';
import QuillCursors from 'quill-cursors';
import { WebsocketProvider } from 'y-websocket';
import 'quill/dist/quill.snow.css'; // 使用了 snow 主題色
// 使用 cursors 插件
Quill.register('modules/cursors', QuillCursors);
const quill = new Quill(document.querySelector('#app'), {
  modules: {
    cursors: true,
    toolbar: [
      [{ header: [1, 2, false] }],
      ['bold', 'italic', 'underline'],
      ['image', 'code-block'],
    ],
    history: {
      userOnly: true,
    },
  },
  placeholder: '林三心不學挖掘機...',
  theme: 'snow',
});
const ydoc = new Y.Doc(); // y 文檔對象,保存需要共享的數據
const ytext = ydoc.getText('quill'); // 創建名為 quill 的 Text 對象
// 連接到 websocket 服務端
const provider = new WebsocketProvider('ws://localhost:1234', 'quill-demo-room', ydoc);
// 數據模型綁定,再綁上光標對象
const binding = new QuillBinding(ytext, quill, provider.awareness);

服務端

只需要在終端里運行

HOST=localhost PORT=1234 npx y-websocket

效果

現在就可以實現協同文檔的效果啦?。。?/p>

?轉自https://juejin.cn/post/7297522590683168783


該文章在 2025/4/14 10:19:01 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 自拍偷在线精品自拍偷无码专 | 国产精品亚洲精品久久品 | 亚洲午夜久久久无码精品网红a片视频阅读大全台湾无码a片 | 国产视频一二 | 精品丰满人妻无套内射 | 人妻丝袜另类欧美偷拍视频 | 91精品专区 | 无码粉嫩小泬中出 | 日韩久久一区二区三区 | 久久国产精品久久精品国产 | 亚洲国产成人精品无码区宅男? | 成人麻豆日韩在无码视频 | 91久久久久国产一区二区 | 欧美成人精品一区二区综合 | 麻豆av无码人妻一区二区三区 | 亚洲中文字幕精品久久久久久 | 亚洲中文久久精品无码浏不卡 | 人妻制服丝袜有码中文字幕 | 欧美高清日韩在线 | 久久亚洲色www成人欧美 | 日本怡春院一区二区三区 | 国产成人无码aa精品一区19 | 精品少妇人妻av一区二区三区 | 久久久久国产一区二区 | 日本做受高潮好舒服视频 | 中文字幕av在线一区二区 | 国产放荡AV剧情演绎麻豆 | 日韩av无码国产精品一区亚洲 | 日韩免费高清一级毛片 | 日本最新免费二区 | 国产区一区二区三区高清 | 日本波多野结衣在线观看 | 被伴郎的内捧猛烈进出H | 无套内谢少妇毛片A片樱花 无套内谢少妇毛片免费看看我 | 日本无码H纯肉黄动漫A红桃 | 伊人久久丁香色婷婷啪啪 | 99久久久无码国产精品免费人妻 | 亚洲东京热av一区二区 | 好男人WWW神马社区在线观看 | 亚洲午夜国产精品无码老牛影视 | 中文字幕人妻系列乱码 |