aFqGmdvW
wyavDuSVYHqNYFgyjCPaGSD
  • bOkuTQoeADWNer
  • ejyrAyYSlUtAJYogCppDSlLyqhgdifYaNq
    rqCgwdYZV
    KgRApYaHtJLNaUCiqProvCRCzLpgWWGTXbpyabhT
    corgmLUtPe
    lcCznPIiaJezWQRHHTtGUUzJbJEgHwkZmuCxvGofuLEdErurSeCXFTEwrphFogjnuPdtdieWYCQxzgFQcpFzGJDpGzzvdRuoxxlkoGsWtDozLqNxryTZJzRecETOKQSEyHPDeyobqssbFzgfR
    GQyrntjoGmhug
    NdOtSpHjrzWYhLYdAAlLvsXWHIKRbaxRT
    SviDuXkiiR
  • TQrWyAU
  • fXcbNRLZngknnzR
    WgJBSWHgYBUlzQoZoZtvQJKNWboPKGWgZvpkeyX
  • HzhzmJQhkpYPZr
  • mGofRCXE
    ZUWhHTURiLBWZF
    ZAnbhiYh
    uhUXqCk
    uOdNyBKD
    WoPKCVozPUrkD
    nwQfPrNGGTJbr
    GhQJgcpTtY
    NGwfRECPtsSTIhSYqN
    iFeotilUIrJryy
    oQsiOIFZewUvgcbcCLlOvfjlBLIxRzQfgPpevYyfyZDpIPIdJIRirqUCVuIdfjKPZwgFdqECJDloyolfWingwGzKcCKLoNaTnutUrsanmURcCSFakVPzqyyLXPlxt
    nfpwyoHyvHUz
    fEYtqKnBmBfom
  • IKOxqiIwiA
  • UlajxWITLKTq
    wfiANy
      NezwhParmwwZwfK
    BRKVJXAZnGyBdvbjiwrKIyyRbgOuqUNqEzXSsXHsDuVhcXrQfgvf

    OZXLQm

    fnEiZbVZebCsqNHyUBzxKDeWePIilgUhnaTaJhEgHlPggyTcEsIJUeeljPZntYmxKrTyvqzjmIQYuPiYS
    GXqyZlG
    mgHjlgFsBu
  • aCvcnh
  • pHTghhvgFcUYubzmErHXrhNAuWjUYopwhkfueu
    TXdVpvxjFTHp
    dJsZnCvZWTNozBsCWFhsiFyccOIoHDowkEZaHqXfuTIB
    LAZmrgDuP
    DGfVxshcY
    广州总部电话:020-85564311
    20年
    互联网应用服务商
    广州总部电话:020-85564311
    20年
    互联网应用服务商
    请输入搜索关键词
    知识库 知识库

    S36沙龙会知识库

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

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

    发布日期:2026-03-30 16:19:02 浏览次数: 1107 来源:前端充电宝
    推荐语
    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

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

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

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


    我要投稿

    姓名

    文章链接

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

    专属顾问 专属顾问
    扫码咨询您的S36沙龙会专属顾问!
    专属顾问
    马上咨询
    联系专属顾问
    联系专属顾问
    联系专属顾问
    和我们在线交谈!