⭐ 前React核心成员Cheng Lou发布了一个只有15KB的纯JavaScript排版库,48小时狂揽14k Star,现在已经44k+。
🚀 这个库不搞AI不搞框架,只做一件事,就是让浏览器排版速度快了483倍,简单来说就是用纯数学计算替代了浏览器回流。
💀 前端开发者都知道回流是浏览器最贵的操作之一,但所有人都将就了30年,因为一直没有更好的解决方案。Pretext这次终于从根本上解决了这个问题,而且只需要15KB的代码量。
🌊 项目发布后整个社区沸腾了。Hacker News首页挂了超过24小时,Twitter上全在讨论,GitHub Trending直接被屠榜。
🔥 很多人都评价这是最近几年最实用的前端项目之一,因为它切入了一个所有人都头疼的真实痛点。

💎 作者Cheng Lou是个传奇人物。前React核心成员,写了React Motion这个经典的动画库,现在在Midjourney当工程师。
👏 他这次瞄准了Web平台最核心的排版问题,大家都知道这是一件很久没人做但是非常值得做的事情,大家都说终于有人出手了。
🤔 这个库到底解决了什么问题呢?写前端一定遇到过这样的场景:想知道一段文字到底有多高,得先创建DOM元素设置内容和宽度,然后调用offsetHeight方法获取高度。
❌ 关键就在这里:这一行会触发最贵的Reflow回流,页面越复杂越明显。
⚠️ 传统方法耗时43.47毫秒,每次文字变化都要全部重新计算。在虚拟列表里要给几百个项目做文本测量,累积时间直接卡到用户能感受到。AI对话流里每个新消息都要测量高度,闪烁不停让人很崩溃。
✨ 开发者试过各种缓存和估算方法但都治标不治本,因为核心瓶颈就是要依赖DOM布局引擎。Pretext彻底绕开了这个问题,从根本上消除了回流,这是一次非常聪明的技术思路转变。
💡 Pretext的解法非常优雅。第一步prepare调用Canvas的measureText方法,测量每个字符宽度并缓存成内部数据。第二步layout只用缓存数据做纯算术运算,不创建DOM也不触发布局引擎。
🚀 最终每次排版只要0.09毫秒,比传统方法快了483倍,社区因此兴奋。

🎯 适用场景非常广泛。虚拟列表可以精确计算每项高度不再需要估算缓存,AI对话流实时测量消息高度实现零闪烁布局,瀑布流纯数学控制每列宽高不需要各种CSS兜底,Canvas渲染精确排列多语言文本中英阿和emoji全部统一测量。
📦 核心API只有两行代码一条命令就能上手。Demo体验chenglou点me斜杠pretext,GitHub地址github点com斜杠chenglou斜杠pretext。15KB两行API483倍加速,好的技术就是这样简单优雅直击痛点太酷了。