仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
来源|大迁世界
作者|前端小智
还记得当初选框架就像加入某场“圣战”吗?React派嘲讽Angular“臃肿”,Vue支持者自诩折中之选,JSX是天才发明还是罪恶源头吵得难解难分。
如今,剧情反转:这些框架竟然风格越来越相似。
过去几年,我亲眼见证了它们的不断趋同。曾经各执一词的多种开发思路,如今相互借鉴之深,让人时常分不清自己到底在用哪个框架。
最大的“出轨证据”莫过于信号。
三年前若有人说Angular会拥抱SolidJS那套响应模型,我定会笑出声。但到了2025年,信号已经在多款主流框架里占据一席之地:
**Angular16+**:内置细粒度信号响应
Svelte5:底层用信号实现响应,但对开发者透明
SolidJS:信号之始祖
Preact:信号为首选状态管理
Qwik:从诞生之初即拥抱信号
Lit3:Google的WebComponent框架,正式引入信号
就连Vue虽未明称“信号”,其底层原理亦与之异曲同工。React目前仍是“例外”,但压力山大不言而喻。
为何信号称王?
它直击无谓重渲染的痛点。传统React模式是:状态改动就重跑整个组件树;信号则精确追踪数据依赖,只更新真正需要刷新的那一小部分。
结果是更少的计算、更快的交互响应(如INP指标提升)。
曾几何时,Angular有“指令”,React有“组件”,各自标榜与众不同。随着React推崇组件化,Angular社区也在1. x里实验“组件式指令”,到1. 6引入angular.component(),再到2. 0才真正切换组件模型。Vue自始至终以组件为核心。
现今,所有框架都在玩组件。语法虽异,思想一致:
封装逻辑、可复用单元、Props下行、事件冒泡——模式一脉相承。
更耐人寻味的是,大家都在向同一个「服务器优先」目标冲刺:在服务器渲染,客户端按需「激活」。
Next. js:ServerComponents+部分水合
Angular:非破坏式水合,正在测试局部水合
Nuxt:通用渲染+灵活水合
SvelteKit:SSR+客户端增强
Astro:默认零JS,岛屿架构
Remix:Server-First+渐进增强
共同点:减少发往浏览器的JS,关键交互处再加载,以求最优性能。
还记得路由配置要手动写一堆文件、折腾无尽plugin吗?当年Next. js首创的基于文件的路由目录风潮,如今被:
SvelteKit
Nuxt
Astro
Remix
实验性Angular
一并照搬:pages/index. js对应/,pages/blog/[slug].js对应/blog/:slug,语法一致,约定胜过配置。
框架们在性能优化上也殊途同归,常见手段包括:
代码切割:拆分包,只加载需要的模块
懒加载:异步加载组件或路由
摇树优化:剔除无用代码
图片优化:自动响应式及延迟加载
包体分析:内置可视化工具
最佳实践几乎可以在不同框架间“一键迁移”。
为留住开发者,框架们在工具链和体验上也不断靠拢:
热模块替换(HMR):都支持
TypeScript:一等公民
调试扩展:Chrome插件齐备
CLI脚手架:模板、构建一致
插件系统:扩展机制类似
连报错提示,都在相互学习改进。
2024年最有趣的发展,当属ReactCompiler的登场:自动优化、减少重执行,思路与2019年Svelte3编译器如出一辙。与此同时,Svelte5又悄然拥抱信号(曾声称不需信号),让人啧啧称奇。
技能通用:概念学一次,多端适用。
降低锁定:按相同模式重构升级更容易。
工具互通:可跨框架使用的分析和插件更多。
实践更加统一:最佳方案已被验证。
React是信号阵营里最大的“例外”,但也通过编译器试图挽回性能;新晋框架如Qwik则主打「可恢复性」,让服务端执行状态能无缝在客户端续航。
现代前端生态正朝着组件化、信号响应、服务器渲染与按需水合、文件路由,以及卓越开发体验等稳定模式收敛。框架之争未尽,但基础套路已日渐一致。与其纠结模板与JSX的孰优,不如携手用同样高效的方式,创造更卓越的用户体验。
你在日常开发中是否也感受到这一趋势?觉得下一个被“借鉴”的创新会是什么?欢迎留言分享!
好啦,今天的内容分享就到这,感觉不错的同学记得分享点赞哦!
PS:程序员好物馆持续分享程序员学习、面试相关干货,不见不散!
点分享
点收藏
点点赞
点在看