news 2026/4/17 16:02:16

JavaScript 框架时代即将结束——编译器时代已经开始

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript 框架时代即将结束——编译器时代已经开始

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

我知道哪里不对劲,是在那天——我把一半 JavaScript 删掉之后,应用在生产环境里反而跑得更顺。

没有重构。 没有重写。 更没有“架构升级”。

只是删除。

页面更快了,服务器 CPU 掉下来了,某些 bug 还很识趣地自己消失了。

我什么“新东西”都没加。 我只是把复杂度拿走了。

那一刻,幻觉裂开了。

我们不是在进入一个新的框架时代。 我们是在离开一个时代。 悄悄地、别扭地、并且对很多靠它吃饭的人来说——有点痛。

这不是一篇“反 React”文章

如果你读到这里开始防御,请先停一秒。你会这样很正常。

React、Vue、Angular、Svelte、Solid……这些工具在它们出现的那个时间点,确实解决了真实问题。

它们把我们从 jQuery 的泥潭里拽出来,给混乱装上结构,让大团队协作成为可能。它们教会了一代开发者如何用组件、数据流、可预测状态来思考。

没有它们,很多我们今天离不开的产品,根本不可能按期上线。

那个曾经很美、现在开始不对劲的承诺

框架卖给我们的,是一个梦:

  • 写一次,到处跑

  • 组件大于页面

  • 状态大于文档

  • JSON 大于 HTML

  • 客户端逻辑大于服务端逻辑

听起来很现代。 用起来很强大。

但你看看我们最后真正构建出来的是什么。

今天一个“典型”的生产栈,经常长这样:

  • 交互前要加载 300KB 到 1MB 的 JavaScript

  • 多重构建步骤

  • 某些只会在周二发生的 hydration 错误

  • 性能预算在会议里讲半小时,却不在代码里被解决

  • 团队成员不敢动文件,因为 build graph 脆得像玻璃

  • 我们不仅仅是在加抽象

  • 我们是在交“运行时税”

肮脏的小秘密:大多数应用,其实就是文档

说句大实话:你的应用大概率属于这些:

绝大多数线上应用都有熟悉的形态:仪表盘用来汇总数字,不是做实时模拟;后台管理用来管理数据,不是炫技动画;CRUD 页面一天天安静地创建、读取、更新、删除记录;报表需要被快速浏览、导出、打印,而不是被“沉浸式交互”打断;设置页追求正确性,不追求花活;表单要的是可靠,不是聪明。

这就是我们真正交付的软件现实。

不是游戏。 不是 Figma。 也不是 Google Docs。

它们是文档。 是带按钮、筛选、分页的文档。

但我们却一直把它们当“游戏引擎”在交付,付出性能成本,换来用户根本没要求过的互动。

JavaScript 从来不是问题

JavaScript 没有在死亡。

“运行时的 JavaScript 膨胀”才是在拖垮我们。

问题不在语言本身。 问题在工作发生的位置。

过去十年,我们把几乎所有事都推到了浏览器:

  • 路由

  • 拉数据

  • 渲染

  • 校验

  • 权限逻辑

  • 特性开关(feature flags)

浏览器变成了第二台服务器。

然后我们反过来问:“为什么性能会变差?”

编译器时代的思路不一样

新一代工具会问一个简单到刺人的问题:

如果能更早决定,为什么要等到运行时才做?

“更早”指的是:

  • 构建时

  • 请求时

  • 编译时

  • 边缘节点(Edge)时

  • 但不是:用户的时间

这是核心的心智切换:

从“会运行的框架”。 到“会把自己抹掉的编译器”。

编译器时代长什么样?

第一眼看上去,它甚至有点无聊。

这恰恰是重点。

HTML 回到中心位置

不是 JSX 假装自己是 HTML。 而是:真正的 HTML。

<form method="post" action="/login"> <input name="email" /> <input name="password" type="password" /> <button>Sign in</button> </form>

没有 state hook。 没有客户端路由。 没有 hydration。

只有一个文档。

服务器再次发送“完成品页面”

服务器知道什么?

  • 用户是谁

  • 权限是什么

  • 数据是什么

  • 布局是什么

所以它把页面渲染好。

不是发 JSON。 而是发 HTML。

app.get("/dashboard", async (req, res) => { const data = await getStats(req.user.id) res.send(renderDashboard(data)) })

简单。 可预测。 可缓存。

JavaScript 变成“增强”,不再是“必需品”

需要 JS 的时候,它也很小。

<button hx-post="/refresh" hx-target="#stats"> Refresh </button>

没有全局 store。 没有客户端路由。 没有 bundler 杂技。

浏览器回归它最擅长的事:

请求文档。 替换片段。

一个真的能扩展的架构

不花哨。 但诚实。

[ Browser ] | | HTTP request v [ Server ] | | SQL v [ Database ]

没有“客户端状态镜像”。 没有“为了跟自己说话而搭 API 网关”。 没有 hydration mismatch。

流量上来,你扩服务器。 复杂度上来,你加模块。

不是加框架。

构建步骤正在变小

这也是一个很安静、但很要命的变化。

以前我们是在“构建应用”。 现在我们是在“把行为编译掉”。

现代编译器/偏服务端优先的工具,越来越擅长做这些事:

  • 删除没用的代码

  • 内联常量

  • 预计算路由

  • 在不需要时剥离客户端逻辑

最好的代码,是永远不会被发到用户浏览器里的代码。

那些没人拿来做演讲的指标

这些数字上不了大会 PPT,但它们决定你周末能不能睡个好觉。

我在真实生产环境见过的变化:

  • JavaScript payload 从 420KB 降到 38KB

  • TTFB 提升 3 倍

  • hydration 消失后,错误率下降

  • 新人 onboarding 时间砍半

  • 没有炫酷动画演示

  • 只有更少事故

为什么这让人不舒服

框架给了很多开发者身份。

你是 React 开发者。 你是 Vue 开发者。 你是前端架构师。

编译器时代不太在乎这些标签。

它只问:

  • 浏览器本来就能做吗?

  • 服务器本来就能决定吗?

  • 编译器能把它删掉吗?

它奖励的是基本功,而不是 API 背诵。

这对那些把“复杂度”当成地位的人来说,会很可怕。

这也是为什么,没人会高调宣布它

不会有“框架已死”的发布会。 不会有“时代交接”的 Keynote。

因为这个转向,不好卖课。

它长得像这样:

  • 更少 JavaScript

  • 更少文件

  • 更小 diff

  • 更无聊的 commit

  • 更稳定的系统

没人给无聊鼓掌。

但用户会悄悄留下。

你接下来该做什么

不是重写一切。

请先做这些:

  • 在加更多 JS 前,先删 JS

  • 每做一个功能,先问:它为什么一定要在客户端?

  • 优先 HTML,而不是 JSON

  • 让服务器把活干完

  • 把 JavaScript 当调味料,不要当主菜

你一开始会觉得自己变慢了。 然后你会变得更平静。 最后你会更快。

未来不闪耀,未来很耐用

未来的软件会:

  • 秒开

  • 少坏

  • 好推理

  • 能扛新人加入

  • 越老越稳

框架帮我们长大。 编译器教我们克制。

JavaScript 框架时代不会爆炸,它只会褪色。

如果你足够敏感,你已经能听到那种“安静”。

那份安静是性能。 那份安静是可靠性。 那份安静是工具终于学会——别挡路。

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

CSS终极指南

Vue 设计模式实战指南

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 2:09:46

告别 interface{} 模拟,Go 终于要有真正的 Union 类型了?

大家好&#xff0c;我是Tony Bai。“Go 什么时候支持枚举&#xff1f;” “Go 什么时候有真正的联合类型&#xff1f;”这可能是 Go 语言诞生以来&#xff0c;被问得最多的问题之一。现有的解决方案——无论是用 const 模拟枚举&#xff0c;还是用 interface{} 配合类型断言模拟…

作者头像 李华
网站建设 2026/4/14 20:27:51

掌握采购管理与库存管理的关键要点:象过河软件助力企业成功

对企业而言&#xff0c;采购管理的核心是 “按需备货、成本可控”&#xff0c;库存管理的关键是 “数据精准、周转高效”&#xff0c;一旦两者脱节&#xff0c;就会陷入 “库存积压占用资金、缺货断供错失订单、流程混乱引发损耗” 的困境。想要掌握两者的管理关键&#xff0c;…

作者头像 李华
网站建设 2026/4/17 17:36:05

波形发生器LC振荡电路设计:基本原理与实现

从零搭建高频正弦波发生器&#xff1a;LC振荡电路的工程实践与避坑指南你有没有遇到过这样的情况&#xff1f;明明按照理论公式算好了电感和电容&#xff0c;焊出来一通电&#xff0c;结果不是不起振&#xff0c;就是频率飘得离谱&#xff0c;波形还像“心电图”一样扭曲。如果…

作者头像 李华
网站建设 2026/4/17 19:03:53

ECharts Timeline 组件完整教程:构建动态数据可视化的终极指南

ECharts Timeline 组件完整教程&#xff1a;构建动态数据可视化的终极指南 【免费下载链接】echarts ECharts 是一款基于 JavaScript 的开源可视化库&#xff0c;提供了丰富的图表类型和交互功能&#xff0c;支持在 Web、移动端等平台上运行。强大的数据可视化工具&#xff0c;…

作者头像 李华
网站建设 2026/4/16 9:06:36

Webhook自动化部署终极指南:从零搭建完整CI/CD流水线

Webhook自动化部署终极指南&#xff1a;从零搭建完整CI/CD流水线 【免费下载链接】webhook webhook is a lightweight incoming webhook server to run shell commands 项目地址: https://gitcode.com/gh_mirrors/we/webhook Webhook作为轻量级HTTP钩子服务器&#xff0…

作者头像 李华
网站建设 2026/4/16 9:06:36

RS232接口引脚定义电气特性:工业级可靠性解析

RS232接口引脚定义与电气特性&#xff1a;为什么它在工业现场“老而不死”&#xff1f;你有没有遇到过这样的场景&#xff1f;一台崭新的PLC控制柜里&#xff0c;布满了现代化的以太网和CAN总线模块——但角落里赫然插着一根DB9串口线&#xff0c;连向一个老旧的温控仪。打开设…

作者头像 李华