广州总部电话:020-85564311
20年
互联网应用服务商
广州总部电话:020-85564311
20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

困扰前端20年,这个地狱级难题终于解决了,一天暴涨 10k Star!

发布日期:2026-03-30 16:19:02 浏览次数: 817 来源:前端充电宝
推荐语
Pretext 解决了前端开发者20年来最头疼的文本布局问题,性能提升高达120FPS!

核心内容:
1. 传统文本布局的痛点与性能瓶颈
2. Pretext 的创新解决方案与技术原理
3. 实际应用场景与性能提升效果
小优 网站建设顾问
专业来源于二十年的积累,用心让我们做到更好!

这个周末,国外社交平台被一个JS工具刷屏了。

这个工具叫 Pretext —— 一个用 TypeScript 写的文本布局引擎。

仅仅用了一天多的时间,作者的推文阅读量就达到了1300万。而且这个项目的GitHub仓库也获得了近 1 万个star。

它解决的问题很简单,但你一定被它折磨过:

怎么精确算一段文字的高度和换行。

这个问题到底有多烦?

你肯定写过这些:

  • 聊天气泡,想刚好撑满 → 每次输入都要测高度,卡顿明显
  • 瀑布流 / 卡片流 → 高度永远差一点,布局抖
  • 富文本 / AI 界面 → 一换行就重排,直接掉帧
  • 虚拟列表 + 不定高 → 滚动时疯狂 layout thrashing

这些问题本质上都一样:

你必须依赖浏览器去测文本

而浏览器一旦参与,就绕不开:

Style → Layout → Paint

哪怕只是测个高度,也是在走 layout。

Pretext 做了什么?

它的思路很直接,仅仅借助 canvas.measureText 和 Intl.Segmenter:

不测 DOM,自己算。

import { measureText } from 'pretext'

const result = measureText({
  text"这是一段很长的文本...",
  font"16px system-ui",
  width300
})

直接返回:

  • 总高度
  • 每一行
  • 每个字符位置

而且整个过程:

  • 不触发 reflow
  • 不读 DOM
  • 全是纯计算

官方给的数据是:0.05ms 级别

你可以理解为:

以前是“问浏览器”,现在是“自己算答案”

这东西真正有意思的地方

不是更快,而是很多场景变简单了

  • 聊天气泡:不再多一行空白、不跳
  • 瀑布流:渲染前就能算好高度
  • AI 界面:输出即排版,没有闪动
  • 虚拟列表:不定高终于好处理了

本质变化只有一句话:

文本布局,从浏览器黑盒,变成了可控计算

最后

前端这些年有很多性能问题,本质都一样:

你在让浏览器做一件很重的事。

Pretext 干的事情其实很简单:

把“测文本”这件事,从浏览器里拿出来了

它不一定会马上成为标配,但至少——

以后再遇到“文字一多就卡”的场景,你有别的解法了。

GitHub:https://github.com/chenglou/pretext

优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
联系专属顾问
联系专属顾问
联系专属顾问
和我们在线交谈!