据 1M AI News 监测,Midjourney 工程师、React 动画库 react-motion 作者 Cheng Lou 开源了 Pretext,一个纯 JavaScript/TypeScript 文本测量与排版库,零依赖。Pretext 绕过浏览器 DOM 测量(如 `getBoundingClientRect`、`offsetHeight`),避免布局回流(layout reflow),用纯算术完成文本高度计算和换行。
Pretext 分两阶段工作:`prepare()` 通过 Canvas API 一次性测量字符宽度,`layout()` 基于缓存的宽度数据做纯算术运算。在 500 段文本的基准测试中,`prepare()` 耗时约 19ms,`layout()` 仅需 0.09ms。Cheng Lou 在配套文章中写道,「性能提升不是渐进的,而是质变的:0.05ms 对比 30ms,零次回流对比五百次」。
库支持中日韩、阿拉伯语等全语种及 emoji、混合双向文本,可渲染到 DOM、Canvas、SVG。典型应用场景包括:
1. 无需猜测高度的虚拟列表和遮挡剔除
2. 瀑布流等 JavaScript 驱动的自定义布局
3. 聊天气泡多行文本自适应收缩宽度
4. 文本环绕图片的编辑排版
币须知道