Pretext:一个前端小工具,为什么一下子火了?

0 评论 134 浏览 0 收藏 11 分钟

Pretext 的开源风暴正在席卷前端开发领域!这个由前 ReactJS 核心成员 Cheng Lou 打造的文本布局库,用独创的 prepare() 与 layout() 二步法彻底解决多语言文本测量难题。从动态气泡聊天框到杂志级图文混排,44.2k GitHub Stars 背后藏着怎样颠覆性的技术方案?本文将深度解析其核心算法,并展望在聊天应用、代码编辑器等真实场景中的商业化潜力。

你这几天有没有刷到过这些演示视频:一条龙从文字里穿过去,字会自动绕开:

一个气泡会跟着文字内容自己长成合适的形状:

一段话可以像杂志排版一样,绕着不规则图形流动:

今天和大家分享的就是这个最近大火的:Pretext

01 Pretext 是什么?

Pretext 不是一家成熟公司,也不是一个 AI 产品,它是一个刚开源不久的前端工具:

专门帮你提前算好一段文字怎么排、怎么换行、占多高。

这过去要实现这些功能,前端开发都得先让浏览器排一遍,再去量结果。成本高,速度慢,最重要是,很烦。

GitHub 上,Pretext 被定义为一个纯 JavaScript/TypeScript 的多行文本测量与布局库,当前公开数据是44.2k Stars、2.4k Forks

这个项目的作者叫Cheng Lou。Cheng Lou 的 GitHub 主页上,自己写的经历包括ReactJS、ReasonML、ReScript、Messenger、Midjourney

他之前还做过一个很多前端开发者都知道的库,叫react-motion。这个项目在早些年做网页动画时影响很大。

换句话说,Cheng Lou 是个前端高手。

02 Pretext 解决的,到底是什么问题?

如果你是一个前端开发,以前你想知道一段文字在网页里到底会占多高,通常要先把它真放进页面里,再去适配浏览器。

Pretext 做的就是:别管浏览器了,我已经替你算出来了。

过去浏览器每次重新计算页面布局,成本都不低。特别是你去读getBoundingClientRect()、offsetHeight这种尺寸信息时,经常会触发一次重新布局

可以简单理解成:浏览器要重新把页面里很多元素的位置和大小再算一遍。

这一步很贵,尤其是页面复杂、文字很多、内容还在不停变化的时候。

过去大家一般怎么处理这个问题?大概就是三种办法。

第一种,最常见:真渲染,真测量

先把文字插到页面里,浏览器排完版,再去拿结果。这种方法最稳,但最慢,成本也最高。

第二种,靠经验估算

比如按字符数、平均字宽、容器宽度,大概猜一个高度。

这个方法快一点,但经常不准,尤其碰到中英文混排、表情符号、不同字体时,很容易偏。

Pretext 官方文档里专门强调它支持多语言、复杂文本分段,这其实也从侧面说明:这些地方过去很容易算错。

第三种,尽量少量几次

也就是用缓存、节流、虚拟滚动等办法,承认“测量很贵”,只是尽量少碰它。

也就是说,很多前端项目并没有真正解决这个问题,只是在尽量绕开它。

Pretext 怎么做的呢?它把这件事拆成两步:

第一步,prepare()。

先把文字按 Unicode 规则拆开,用 Canvas 的measureText()去量每一段宽度,再把这些结果缓存下来。

第二步,layout()。

后面在不同宽度下怎么换行、总共几行、高度是多少,就不再去碰 DOM 了,而是直接拿缓存好的宽度做计算。

也就是说,prepare()是相对重一点的预处理,但通常只做一次;后面的layout()可以反复跑,比如窗口大小变化时,通常只重跑layout()就够了。

这套思路其实不复杂,但很有效:同一段文字,最贵的是第一次准备,不是后面换不同宽度反复排。

03 Pretext 的价值是什么?

如果只看那些出圈视频,很容易误会 Pretext 是一个“让网页文字更酷”的好玩的小工具。

但 Pretext 真正有价值的地方,反而是那些没那么适合发短视频的场景。比如:

聊天界面里有很多高度不固定的消息;

虚拟列表里有成千上万个文本项,滚动时要提前知道每项多高;

代码编辑器、白板、文档工具里,文本框尺寸经常变化;

服务端或者后台线程里,没有浏览器页面,但你又想先把文字布局算好。

Pretext 官方介绍里其实已经点到了这些方向:它支持 DOM、Canvas、SVG,未来还要支持服务端。

另外当然还有一堆更偏实际的演示,比如紧凑的多行气泡、可变形排版、动态列表等。

04 商业模式?现在还很早

Pretext 本身是 MIT 许可证的开源项目,暂时没有公开的商业收费模式。

那以后有没有商业化空间?有,但现在都还只是推测。

比较可能的方向,大概有几种:

第一,继续做开源库,靠个人品牌、顾问合作、生态影响力变现。

这在前端世界很常见,项目本身不收费,但会带来职位、合作、咨询和更大的项目机会。

第二,往更完整的文字排版引擎走。

比如支持更多场景、更多渲染方式,甚至做成给编辑器、设计工具、创意工具用的底层能力。

第三,被更大的产品生态吸进去。

比如聊天产品、设计工具、代码工具、AI 界面工具,把它作为底层模块,而不是单独卖。

但这些现在都还早。我觉得接下来最值得关注的是两件事。

第一,有没有更多真实生产案例出来。

有没有团队真的把它用进聊天、编辑器、设计工具、白板、文档工具里,然后看效果如何。

第二,边界能不能继续往外推。

现在它解决的是多行文本测量和布局这一块。

GitHub 文档里也写了边界,比如字体要先加载好,不然结果会飘;某些高级排版特性还会有误差;system-ui在某些系统下也会影响准确性。

也就是说,它现在解决的是一大块常见问题,但还不是完整的浏览器排版引擎。

05 AI 在前端开发上,现在发展到什么程度了

先看一个最直接的数据:

Stack Overflow 2025 开发者调查显示,84% 的受访开发者表示正在使用或计划使用 AI 工具参与开发流程;职业开发者里,51% 已经每天都在用 AI 工具。

AI 在前端开发里,已经分成了几类很清楚的产品:

第一类:写代码助手

这类产品最典型的是Cursor,它的年化收入已经超过20 亿美元

Cursor 本质上还是一个编程环境,但把 AI 深度塞进去,强调自动补全、代码理解、任务执行、代理模式。

第二类:直接生成前端界面和页面

这类产品代表是v0

它最早就是做“你说一句话,它直接给你 React 页面和组件代码”。

到 2026 年,Vercel 已经把它往更完整的方向推了:不只是出页面,还能连 GitHub 仓库、开分支、提 PR、接进真实团队流程。

Vercel 官方今年 2 月的文章里写得很清楚:自 2024 年正式可用以来,已经有超过400 万人用 v0 把想法变成应用。

第三类:直接搭整个网站和应用

这类产品代表是Replit、Bolt这一类。

Replit 现在的重点是“从想法到应用”,而且不是只帮你写界面,还把设计、构建、部署、协作一起打包。

在 AI 编程工具的加持下,现在的前端开发不再只是程序员在本地一点点手搓页面,而是:

你把页面和逻辑和 AI 讲清楚,AI 先给你做出第一版,然后你再修改、接后端、接数据、之后上线。

也就是说,前端开发虽然还没到完全自动化,但也早就不是帮忙补几行代码这么简单了。

以上,祝你今天开心。

作者:张艾拉 公众号:Fun AI Everyday

本文由 @张艾拉 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自作者提供

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!