在这里插入图片描述

一个有趣的巧合

2025 到 2026 年,前端领域发生了三件看似毫无关联的大事:

Vue 4.0 RC 发布,Vapor Mode 成为默认渲染模式——虚拟 DOM 被绕过了

React Native 0.82 永久禁用旧架构,新架构全面接管——异步 Bridge 被拆掉了

Three.js r182 将 WebGPURenderer 设为推荐渲染器——WebGL 这层抽象被跨过了

三个技术,三个领域,三种完全不同的用户群体。但它们指向了同一个方向:前端正在经历一场系统性的"去中间层"运动。

这不是偶然。当一条技术栈的抽象层积累到足够厚度,性能收益开始边际递减,而抽象本身成为瓶颈时,整个行业就会不约而同地向下钻探。2026 年,这个拐点同时出现在了 UI 框架、跨平台方案和 3D 渲染引擎上。

Vue:虚拟 DOM 的退场

Vue 的 Vapor Mode 可能是这场运动中最具象征意义的一步。

自 2013 年 React 引入虚拟 DOM 以来,这个中间层统治了前端 UI 开发整整十二年。它的逻辑很优雅:用 JavaScript 对象树模拟 DOM 树, diff 出最小变更集,再批量操作真实 DOM。它解决了直接操作 DOM 的混乱,提供了可预测的性能模型。

但十二年过去,虚拟 DOM itself 成了瓶颈。

在复杂列表、高频更新、大量组件嵌套的场景下,"创建虚拟节点 → diff → patch"这套流程的开销,开始超过它节省的成本。框架作者们发现,与其在运行时精打细算地 diff,不如在编译时就搞清楚哪些节点会动、哪些不会,直接生成靶向的 DOM 操作指令。

Vapor Mode 做的就是这件事。它不是"优化虚拟 DOM",而是在编译阶段把模板直接编译为精细的 DOM 操作代码。运行时不再有虚拟节点树,不再有 diff 算法,响应式系统变更直接触发对应的 DOM 更新函数。

结果很直观:bundle size 减少约 60%,内存占用下降,更新延迟缩短。Vue 从"易用但稍慢"的标签,开始向"易用且极致"迁移。

更具深意的是,Vapor Mode 不是 Vue 的专属思路。Svelte 早在 2019 年就走通了这条路,Solid.js 证明了信号驱动 + 直接 DOM 的可行性。Vue 的加入意味着:编译时优化不再是小众框架的特立独行,而成了主流框架的共识方向。

虚拟 DOM 不会一夜消失——它仍是 Vue 的兼容模式,React 也还在坚守。但它作为"唯一正确方案"的时代,已经结束了。

React Native:Bridge 的拆除

如果说 Vue 是在 UI 框架层削掉中间层,React Native 则是在跨平台层做同样的事。

React Native 早期的架构有一个著名的瓶颈:JavaScript 线程和原生线程之间通过异步 Bridge 通信。JS 层把指令序列化为 JSON,抛给 Bridge,Bridge 再传给原生层执行。原生层的结果同样要序列化、过桥、回传。

这个设计在 2015 年很合理——它让 React Native 能用 JavaScript 写出接近原生的体验。但随着应用复杂度上升,Bridge 的代价越来越明显:

  • 每一次原生调用都要跨越序列化/反序列化的鸿沟
  • 大量原生模块在启动时就被加载,拖慢冷启动
  • 类型系统断裂,JS 和原生之间没有编译期契约

React Native 团队花了近四年时间,构建了一套新架构来替换 Bridge。核心是三根支柱:

JSI(JavaScript Interface)——用 C++ 共享内存直接桥接 JS 引擎和原生代码,不再需要异步 JSON 序列化。JS 可以直接持有原生对象的引用,同步调用原生方法。

Fabric——基于 JSI 的新渲染层,支持 React 的并发特性和 Suspense,把 UI 操作从异步批处理变成可中断、可优先级的同步流水线。

TurboModules——原生模块懒加载,只在真正需要时初始化,配合 Codegen 自动生成 JS 与原生之间的类型安全绑定。

2025 年 10 月,React Native 0.82 永久禁用了旧架构。生产环境的迁移数据显示:冷启动快 43%,渲染快 39%,内存占用降低 26%。

Bridge 的存在曾让 React Native 成为"跨平台方案"的代名词。Bridge 的拆除,则标志着它从"跨平台框架"进化成了"原生开发的一种组织方式"。

Three.js:跨向 WebGPU

Three.js 的变革发生在更底层——浏览器图形 API 的世代更替。

WebGL 在 2011 年诞生,把 OpenGL ES 2.0 带进了浏览器。它让网页能跑 3D,催生了 Web 地图、数据可视化、电商展示、在线游戏等大量应用。Three.js 作为 WebGL 的封装层,把这个复杂的底层 API 包装成了开发者友好的接口。

但 WebGL 的设计年代太久远了。它继承了 OpenGL 的状态机模型,API 风格与现代 GPU 架构格格不入,多线程支持薄弱,计算着色器缺失。当开发者想用 GPU 做通用计算、实现光线追踪、处理大规模并行任务时,WebGL 像一堵墙横在中间。

WebGPU 是这堵墙的替代品。它基于现代图形 API(Vulkan、Metal、Direct3D 12)的理念重新设计,提供了更接近硬件的编程模型:显式资源管理、计算管线、多线程友好、更好的性能可预测性。

2025 年底,WebGPU 获得了全主流浏览器的默认支持——Chrome、Edge、Firefox、Safari(包括 iOS),全球覆盖率约 95%。Three.js 从 r171 开始提供生产可用的 WebGPURenderer,到 r182 正式将其设为推荐渲染器。

对 Three.js 开发者来说,迁移通常是透明的——Three.js 的抽象层屏蔽了底层 API 差异,同一份代码可以自动回落到 WebGL 2。但 WebGPU 带来的新能力正在改变可实现的体验上限:更复杂的粒子系统、实时光线追踪、GPU 驱动的几何体生成、机器学习推理与渲染的混合流水线。

更重要的是,Three.js 正在从"WebGL 的封装"蜕变为"Web 3D 引擎"。TSL(Three Shading Language)的引入,让开发者写一次着色器就能同时编译到 WebGL 和 WebGPU。这层新的抽象反而增加了灵活性——它不是在浏览器和 GPU 之间加中间层,而是在两个底层 API 之上建立统一表达。

共同的底层逻辑

三条技术线,三场去中间层运动。它们的表面差异很大,但底层驱动力出奇一致。

第一,性能瓶颈的上移。

十年前,前端性能的瓶颈在 DOM 操作、在原生通信、在 GPU 填充率。中间层(虚拟 DOM、Bridge、WebGL)在当时是加速层,它们通过批量处理、异步调度、硬件抽象来提升效率。

十年后,浏览器引擎更快了、JS 引擎更快了、GPU 更强了。原先的瓶颈被击穿,中间层本身成了瓶颈。diff 算法再优化,也快不过"不 diff";Bridge 再精简,也快不过"直接调用";WebGL 再调优,也快不过"用更底层的 API"。

第二,编译时与运行时的再平衡。

Vue 的 Vapor Mode 把虚拟 DOM 的开销从运行时搬到编译时。React Native 的 Codegen 把类型绑定从运行时反射搬到编译时生成。Three.js 的 TSL 把着色器兼容性从运行时适配搬到编译时转译。

这个趋势贯穿三条线:能提前算清楚的事情,不要留给运行时猜。 编译器变得越来越聪明,运行时变得越来越薄。前端正在从"运行时框架"时代,进入"编译时框架"时代。

第三,控制权的回收。

每一层中间抽象在诞生时都是解放——它隐藏了复杂性,让开发者用更少的知识做更多的事。但当抽象层老化,它反而成了束缚——你无法绕过它去触及更底层的优化空间。

Vue 开发者现在可以选择跳过虚拟 DOM,直接控制 DOM 更新粒度。React Native 开发者现在可以写 C++ TurboModule,与原生代码共享内存。Three.js 开发者现在可以写原生 WGSL 着色器,直接操作计算管线。

抽象没有消失,但选择权回到了开发者手里

中间层不会死,但会被重新定义

去中间层不等于反抽象。人类写代码永远需要抽象——否则我们还在写汇编。

真正变化的是抽象的位置和形态。

旧的中间层是强制性的运行时封装——你用我的框架,就必须经过我的虚拟 DOM / Bridge / WebGL 封装。新的中间层是可选性的编译时工具——你写你的声明式代码,编译器帮你生成最优的底层实现;如果你需要,随时可以下探。

这个转变对前端开发者的技能结构提出了新要求:

  • Vue 开发者需要理解编译输出,知道 Vapor Mode 什么时候比虚拟 DOM 更合适,什么时候需要手动优化响应式依赖
  • React Native 开发者需要理解 JSI 和原生模块的边界,知道什么时候该写 C++ TurboModule,什么时候该留在 JS 层
  • Three.js 开发者需要理解 GPU 管线模型,知道 WebGPU 的计算着色器能做什么,WebGL 回落策略怎么配置

框架在变得越来越薄的同时,也在变得越来越透明。透明意味着:你可以不懂底层,但你最好懂一点。因为当性能问题出现时,调试的粒度已经下沉到了以前被隐藏的地方。

2026 年的前端,到底是什么?

如果把这三场革命放在一起看,会发现一个更大的图景正在展开:

前端开发的边界正在从"写网页"扩展到"写一切屏幕上的交互"。

Vue 管的是 2D 界面——网页、后台、小程序。React Native 管的是原生界面——iOS、Android,未来可能还有 VR 头显。Three.js 管的是空间界面——3D 场景、沉浸式体验、数字孪生。

三个维度,三种渲染目标,但共享同一套思维范式:声明式描述 UI,响应式管理状态,组件化组织代码。 前端工程师的技能栈正在自然覆盖这三个领域。

更深层的变化是性能范式的统一。Vapor Mode 让 2D UI 的更新延迟降到了毫秒以下,JSI 让跨平台调用的开销接近原生,WebGPU 让 Web 3D 的帧率逼近原生应用。三个领域的同时提速,意味着**"Web 体验不如原生"这个古老的偏见,正在失去技术根基。**

结语

2026 年的前端,不是某个框架的版本号,也不是某个 API 的发布。它是一个技术哲学的转折点:当抽象层完成了历史使命,行业有勇气把它拆掉,而不是永远背着它走。

Vue 拆掉了虚拟 DOM,React Native 拆掉了 Bridge,Three.js 跨过了 WebGL。它们拆的不是技术债务,而是曾经的最佳实践。

这提醒每一个技术从业者:我们今天奉为圭臬的架构,也终将成为明天的中间层。 保持对底层的敏感,保持对"为什么要有这层抽象"的追问,比掌握任何具体框架都更重要。

因为框架会过时,但"什么时候该加抽象、什么时候该去掉它"的判断力,永远不会过时。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐