Tiptap 3.0 正式发布!你必须知道的 20 个重大变化 🚀🚀🚀

Tiptap 作为基于 ProseMirror 构建的现代富文本编辑器,在前端富文本场景中拥有广泛的使用者。2025 年,Tiptap 正式推出了 3.0 版本(即 Tiptap V3),本次更新带来了架构、性能、开发体验等方面的全方位升级。

🛠 核心升级与破坏性变化

1. 移除 UMD 构建

Tiptap 3.0 不再支持 UMD 模块格式,仅保留现代前端主流的 ESM 和 CJS 构建方式。这意味着你需要更新构建工具链,确保支持模块导入。

2. React 性能优化:shouldRerenderOnTransaction

React 用户现在可以通过 shouldRerenderOnTransaction 控制 rerender 频率。默认关闭,大幅减少无谓刷新,提高性能。如果你依赖自动刷新,请手动开启该选项。

3. 浮动菜单库切换至 @floating-ui

原先依赖的 tippy.js 被替换为更强大和灵活的 @floating-ui。开发者需安装 @floating-ui/dom@^1.6.0 并更新配置项名为 options

4. 更严格的类型系统

TypeScript 支持显著增强:

  • getPos() 现在可能返回 undefined,需显式判断
  • 插件配置与方法参数类型更加规范

5. 旧 API 被移除

  • editor.getCharacterCount() → 替换为 editor.storage.characterCount.characters()
  • placeholder 插件中的 considerAnyAsEmpty 配置被删除

6. 扩展包统一整合

多个扩展从独立包迁移至 @tiptap/extensions,包括:

  • History(现为 UndoRedo
  • Placeholder
  • CharacterCount
  • DropCursor
  • GapCursor
  • TrailingNode
  • Focus
  • Selection

7. 扩展命名调整

  • CollaborationCursor 改名为 CollaborationCaret
  • History 更名为 UndoRedo,避免与协作历史功能混淆

✅ 新功能与体验优化

编辑 API 显著增强

  • clearContentsetContent 现在会触发更新事件,符合预期逻辑
  • insertContent 修复段落拆分问题
  • 新增实用函数如 delete()canInsertNode()、属性验证器等,提升开发安全性与表达力

编辑器生命周期管理

  • 新增 editor.unmount() 方法 替代 destroy(),保留实例状态支持重新挂载,提升页面切换/缓存的灵活性

SSR 与静态渲染支持

  • 3.0 原生支持无 DOM 环境初始化
  • 引入 @tiptap/static-renderer,可将编辑内容渲染为 HTML、Markdown、React/Vue 组件,适用于 SSG 场景(如 Next.js/静态博客)

JSX 渲染能力增强

  • renderHTML 中可直接书写 JSX,提升表达能力与组件集成能力(React/Vue 均受益)

StarterKit 扩展增强

StarterKit 默认引入更多实用扩展: LinkUnderlineTrailingNodeListKeymap 等,让项目更快启动。

MarkView 支持

全新 MarkView 系统允许为 mark 类型自定义视图,支持框选/高亮/弹窗选择器等富交互特性(React/Vue 渲染)

节点与标记删除事件监听

3.0 增加了对用户删除行为的事件监听能力,方便你进行统计、阻止误删、数据追踪等高级功能。


🧩 扩展包与 UI 工具更新

扩展名 更新内容
HorizontalRule 判断逻辑更精确,兼容性更好
Image 支持宽高属性设置
Link/Mention 支持 @# 等字符作为触发器
TextAlign 新增 toggleTextAlign 命令
TaskList 增加可选无障碍标签
Math 从 Mark 改为 Node,需迁移数据格式
YouTube URL 识别更精准
Emoji 增加 alt 辅助文本,更友好屏幕阅读器

React / Vue UI 支持

  • 所有浮动类菜单统一切换至 @floating-ui 实现,表现更稳定,支持更多生命周期钩子:onShowonHideonDestroy
  • React 兼容 React 19 的新 ref 行为,支持 SSR
  • Vue 提供一致的菜单钩子支持,保持一致性体验

🔮 未来规划(Tiptap 3.x)

Tiptap 团队正在规划更多强大功能:

  • Markdown 支持 :即将支持 renderMarkdown()parseMarkdown(),双向转换内容
  • 🧩 Decorations API:将允许为内容添加"装饰层",不改变原始数据,适合批注/高亮
  • 🛠 内容迁移工具:提供 JSON schema 转换器,支持内容结构版本更新迁移

✅ 总结

Tiptap 3.0 是一次极具诚意的更新,为富文本开发者提供了更优的性能、更现代的架构、更强的类型支持和更丰富的渲染能力。 无论你是构建文档型编辑器、协作平台、还是静态博客管理系统,现在都是升级 Tiptap 的最佳时机。

相关推荐
m0_471199634 分钟前
【自动化】前端开发,如何将 Jenkins 与 Gitee 结合实现自动化的持续集成(构建)和持续部署(发布)
前端·gitee·自动化·jenkins
w***95495 分钟前
spring-boot-starter和spring-boot-starter-web的关联
前端
Moment9 分钟前
富文本编辑器技术选型,到底是 Prosemirror 还是 Tiptap 好 ❓❓❓
前端·javascript·面试
xkxnq13 分钟前
第二阶段:Vue 组件化开发(第 18天)
前端·javascript·vue.js
晓得迷路了15 分钟前
栗子前端技术周刊第 112 期 - Rspack 1.7、2025 JS 新星榜单、HTML 状态调查...
前端·javascript·html
怕浪猫17 分钟前
React从入门到出门 第五章 React Router 配置与原理初探
前端·javascript·react.js
jinmo_C++17 分钟前
从零开始学前端 · HTML 基础篇(一):认识 HTML 与页面结构
前端·html·状态模式
哈__22 分钟前
React Native 鸿蒙跨平台开发:LayoutAnimation 实现鸿蒙端表单元素的动态添加动画
react native·react.js·harmonyos
鹏多多24 分钟前
前端2025年终总结:借着AI做大做强再创辉煌
前端·javascript
哈__27 分钟前
React Native 鸿蒙跨平台开发:Vibration 实现鸿蒙端设备的震动反馈
javascript·react native·react.js