Performance First UI 教会我的东西比任何框架都多

发布: (2026年1月12日 GMT+8 18:40)
6 min read
原文: Dev.to

Source: Dev.to

速度不只是数字

作为开发者,我们从小就认为速度是一个数字——毫秒、分数、图表。
但用户从未看到数字。他们感受到的是瞬间:

  • 点击之后的那一刻。
  • 轻触之后的那一刻。
  • 当他们期待得到响应时的那一刻。

如果在那一刻没有任何反应,就会出现问题——不是技术层面的,而是情感层面的。

Lighthouse 很有用。它让整整一代人开始关注性能。
但在 2026 年,仅仅依赖 Lighthouse 就像只看一辆车在空旷跑道上的加速来评判它。真实用户是在拥堵的路上行驶:

  • 数据加载时他们在滚动。
  • JavaScript 执行时他们在点击。
  • 水合完成时他们在输入。

这就是 性能优先 UI 所在的地方——不是在加载时,而是在交互期间

Interaction to Next Paint (INP)

页面加载是一次介绍。
一次交互是一种承诺。

当用户点击按钮时,他们不仅仅是在请求数据。他们在寻求确认:

“你听到我了吗?”
“你在工作吗?”
“我能信任你吗?”

如果你的界面保持视觉沉默,这个承诺就被打破了。

Interaction to Next Paint 测量的是网络指标中罕见的现实。
它不在乎逻辑何时结束或 Promise 何时解决;它在乎 像素何时变化

这重新定义了我们编写 UI 代码的方式。把工作放在绘制之前突然变得危险。

常见的 INP 问题

大多数 INP 问题并非由慢服务器引起,而是出于好意:

  • 事件处理函数内部逻辑过多
  • 状态更新过多
  • 组件一次性响应过多

一切都在工作,一切都正确——只是稍微晚了一点。那一点点的迟延会叠加。

一个简单、令人尴尬的修复

我对交互性能的最大提升竟然是如此简单:在显示反馈之前停止真正的工作

# Before
Click → compute → update UI
# After
Click → update UI → compute

没有花哨的东西。没有新库。只有对绘制周期的尊重。

支持性能优先 UI 的 Next.js 特性

Next.js 在这种思路下悄然演进:

  • Partial Prerendering – 界面在完整之前就已经出现。
  • Streaming – 内容在不阻塞交互的情况下到达。
  • Server Actions – UI 先移动,随后再确认。
  • Edge Middleware – 将完整的决策树从客户端移除。

正确使用这些工具,就能让浏览器保持响应能力。

经验教训

我曾追求极简主义:更少的功能,更小的包体。
性能优先 UI 教会了我更好的做法:

  • 一次做很多,但不是一次性全部做完。
  • 推迟用户看不见的内容。
  • 延后用户暂时不在意的事。
  • 专注于用户刚刚完成的操作。

缓慢交互的代价

缓慢的交互成本高于慢页面加载,因为延迟发生在用户已经投入的时刻:

  • 他们已经点击。
  • 他们已经有意图。
  • 他们已经准备好。

在这里失去他们,对转化率的伤害远大于慢着陆页。

AI 不能感受犹豫

在 2026 年,AI 可以生成组件、重构代码、优化资源。
但 AI 不能感受犹豫。它无法感知何时转场显得尴尬,或何时反馈来得太晚。这种敏感度正是开发者的真实价值所在。

它要求耐心。
它要求我们观察自己的界面,而不是盲目信任仪表盘。
它要求我们慢慢点击自己的按钮并自问:

这是否让人感到被尊重?

不炫耀。不聪明。尊重。

结论

性能优先 UI 不是潮流;它是一种纠正——回归到倾听用户的软体构建方式。

  • 如果你的 UI 立即响应,用户会原谅瑕疵。
  • 如果它犹豫不决,用户会记住。

最终,性能不在于速度,而在于 信任

Back to Blog

相关文章

阅读更多 »