news 2026/8/24 3:03:44

快速上手 Yjs:实时协作编辑的安装与配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快速上手 Yjs:实时协作编辑的安装与配置指南

快速上手 Yjs:实时协作编辑的安装与配置指南

【免费下载链接】yjsShared data types for building collaborative software项目地址: https://gitcode.com/GitHub_Trending/yj/yjs

Yjs 是一个基于 CRDT 的实时协作编辑库:多人同时编辑同一份文档时,改动会自动分发到各个客户端并合并,不需要你手写冲突解决逻辑。搭配 ProseMirror、CodeMirror 等编辑器,它能把普通编辑器升级成共享文本协作场景,还支持离线编辑后的自动合并。

适合谁,解决什么问题

当你需要多人同时编辑一份文档,必须处理三件事:光标同步、两人改同一位置时的冲突合并、离线改动上线后如何并入。这些逻辑自己实现很难写对,而 Yjs 把它们做成了内置能力,你只需关注"编辑器如何渲染这份共享数据"。

能力速览 🧩

  • 共享类型:Y.Text、Y.Array、Y.Map 等。它们像普通数据类型,但改动会自动传播到其他节点并无冲突合并。
  • 网络无关:Yjs 本身不绑定网络方案。可以用 y-websocket 走中心服务器,用 y-webrtc 走 P2P,也可以自己接传输通道。
  • 编辑器绑定:ProseMirror、CodeMirror、Quill、Monaco 都有现成绑定,带共享光标。
  • 离线优先:配合 y-indexeddb 等本地持久化,文档秒开,离线期间写入的改动在重连后自动同步;撤销/重做由 Y.UndoManager 直接提供。

Yjs 快速安装

准备 Node.js 22+、npm(或 pnpm)和一个现代浏览器即可,不需要其他依赖:

git clone https://gitcode.com/GitHub_Trending/yj/yjs cd yjs npm install

最小可运行示例 🚀

不建议一上来就搭完整协作应用,先跑仓库自带的测试套件验证核心逻辑:

npm test

看到 Y.Text、Y.Array、快照(snapshot)、undo-redo 等测试模块依次通过,说明 CRDT 合并、文档更新编解码都已正常工作。想直观感受"实时协作编辑器"效果,建议再跑 y-prosemirror 绑定的示例:两个浏览器窗口打开同一文档,两边输入会实时出现在对方窗口里,光标也会同步移动。

常见配置方向

场景常见做法
富文本编辑(ProseMirror / Tiptap)用 y-prosemirror 绑定接入 Y.Text
代码协作(CodeMirror)用 y-codemirror 绑定,同步代码与光标
轻量编辑器(Quill)用 y-quill 接入
实时同步起一个 y-websocket 中继服务器,或改用 y-webrtc 做 P2P
离线与持久化浏览器侧加 y-indexeddb,只同步差量

配置的核心就三步:创建Y.Doc,用doc.getText('content')取出共享类型,把编辑器绑定上去;再挂一个 provider 负责同步与持久化。整个过程不碰 CRDT 内部。

新手避坑

  • 版本不一致是最常见的坑:同步双方应保持相同版本的 Yjs,二进制更新协议不匹配会导致同步行为异常且难以排查。
  • 装完包不等于能同步:Yjs 只管数据合并,不含网络层。不接 provider(如 y-websocket),编辑永远不会到达其他客户端。
  • 包名容易看混:仓库源码包名是@y/y,发布到 npm 时是yjs,在 package.json 里检索时以 npm 名为准。

延伸阅读

  • README.md:编辑器绑定与 provider 的完整清单,以及 API 示例
  • src/:核心源码,Y.Doc 与事务(Transaction)实现在 src/utils/
  • tests/:各类型的行为测试,想验证合并规则时照着写即可
  • INTernals.md:CRDT 算法与状态向量的原理说明

【免费下载链接】yjsShared data types for building collaborative software项目地址: https://gitcode.com/GitHub_Trending/yj/yjs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 3:02:25

C++游戏开发框架设计:从状态机到Lua脚本的迷你农场RPG实践

你有没有过这样的体验:想学游戏开发,跟着教程一步步做,最后却只得到一个能跑起来的“玩具”?代码写了几千行,但总觉得功能之间是散的,加个新功能就要大动干戈,最后项目不了了之。最近&#xff0…

作者头像 李华
网站建设 2026/8/24 3:01:52

MinerU PDF转Markdown的macOS安装避坑指南:3条命令搞定arm64依赖报错

MinerU PDF转Markdown的macOS安装避坑指南:3条命令搞定arm64依赖报错 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/8/24 3:01:51

如何最快完成 VoAPI 安装:AI 模型接口管理与分发系统落地实操

如何最快完成 VoAPI 安装:AI 模型接口管理与分发系统落地实操 【免费下载链接】VoAPI 🎉 全新下一代高颜值、高性能、高扩展的智能AI大模型API聚合分发系统 | A new next-generation high-value, high-performance, and highly scalable intelligent AI …

作者头像 李华
网站建设 2026/8/24 3:01:44

WrenAI 智能查询快速上手:10 分钟跑通自然语言问数

WrenAI 智能查询快速上手:10 分钟跑通自然语言问数 【免费下载链接】WrenAI GenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts,…

作者头像 李华
网站建设 2026/8/24 2:58:46

AI红包高并发架构与2024校招技术趋势解析

1. 春节AI红包大战背后的技术博弈去年春节期间,各大互联网平台推出的AI红包活动创造了惊人的用户参与数据。某头部平台公布的战报显示,其AI红包互动次数突破50亿次,峰值QPS达到百万级别。这场看似简单的营销活动背后,实际上是一场…

作者头像 李华