BlockSuite —— 协作编辑器
BlockSuite 是一个多人协作编辑器,支持多用户同时编辑一份文件,并且可以即时看到对方的编辑。BlockSuite 基于 local-first 理念,底层使用了 CRDT 库 yjs
,还支持嵌入到任意不同框架 (React 、Vue 、Angular)。
BlockSuite 的工作方式不同于传统的富文本编辑器:
- 在数据模型上,BlockSuite 没有实现事件溯源模式 (event sourcing),而是提供了一个直接基于 Yjs 的 block 树(底层采用 CRDT),支持开箱即用。它的数据持久层也被设计成本地优先 (local-first)。
- 对于富文本编辑,BlockSuite block 树中的多个不同节点可以连接到不同的富文本编辑组件,从而将富文本内容建模为多个 UI 组件而不是单个 UI 容器,从而消除了危险的单体应用
contenteditale
。 - 对于渲染层,BlockSuite 并不假设内容只能通过 DOM 来渲染。它不仅实现了基于 Web Components 的基本文档编辑 UI ,还为部分白板内容开发了基于 Canvas 的混合渲染器。两个渲染器可以共存于同一个页面上,并从同一个商店更新。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 深入分析 OpenJDK G1 FullGC 原理
导读 本文主要从代码层面介绍 OpenJDK G1(garbage first) FullGC 的工作原理,基于 OpenJDK 从 GC(garbage collection) 入口处开始分析整个 FullGC 原理的核心代码与执行过程;并对比 OpenJDK8 与 OpenJDK11 中单线程与多线程实现 FullGC 的异同。希望帮助大家更深入地理解 G1 FullGC 原理,并了解代码中可能导致 GC 时间长的对象分配方式。 阅读本文需要对 JVM、JDK、java对象、对象内存分配、垃圾回收等概念有一定了解,没有 JVM 基础的同学可参考《深入理解Java虚拟机》,《The Garbage Collection Handbook》等。本文涉及源码可参考openjdk github source code G1 GC的知识回顾 为了帮助大家更全面地理解 FullGC 的逻辑和前因后果,我们先整体简单介绍下 G1 GC 。GC 主要指在程序运行过程中,对象不再使用后,由 JVM 提供的程序将对象销毁并回收内存,将该内存再加入到可用内存中;而 G1GC,是 JVM 提供的一种垃圾回...
- 下一篇
Rust 将进入爆发性的增长期
近日,OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。字节跳动基础架构部服务框架研发工程师吴迪在报告中对 Rust 的发展进行了解读,以下为原文。 Rust 将进入爆发性的增长期 Rust 一方面连续 7 年成为最受喜爱的编程语言,另一方面又以学习曲线陡峭而闻名,Rust 官方显然也关注到了这种情况,因此在 2015 年、2018 年、2021 年分别制定了三年规划。这三个三年规划完成后,Rust 的稳定性、性能和生产力已经得到了验证,第四个三年规划就将易用性和项目落地作为了重点。 在 2024 RoadMap 中,重点就是要解决 Async Rust 的学习曲线、使用难度和相关生态的问题,其中就涵盖了一些 Rust 社区最为瞩目的特性,可以帮助用户简化代码的编写以及降低使用成本,比如 Generic Associated Type(GAT)和 Type Alias Impl Trait(TAIT),以及这两个特性稳定之后所要支持的终极目标:Async Fn In Trait(支持在 Trait 中定义异步函数,GAT 和 TAIT 为这个特性的基础支持)。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8