游客发表
几乎所有前端项目都绕不开框架。常用框架打开任何一个招聘页面,常用框架React、常用框架Vue、常用框架Angular 三个词至少出现一个。常用框架这不是常用框架巧合,是常用框架十年演化的结果。
2013年React刚出来的常用框架时候,大家觉得JSX丑得不行。常用框架把HTML塞进JavaScript里?常用框架疯了吧。但Facebook的常用框架工程师赌对了一件事:UI本质上就是状态的映射。状态变了,常用框架界面跟着变,常用框架不需要手动操作DOM。常用框架这个思路把前端开发从“怎么改页面”变成了“页面应该长什么样”。常用框架思维方式的转变比API本身重要得多。
Vue走了一条更讨巧的路。尤雨溪做Vue的时候,从Angular借了模板语法,从React借了组件化思想,但把学习曲线压到最低。一个HTML文件里引一个script标签就能跑起来,这对当时被webpack配置折磨的开发者来说简直是救赎。我见过不少后端工程师转前端,第一周就能用Vue写出能用的页面。React需要先理解props、state、生命周期、Hooks,Vue的模板指令一看就懂。
Angular是另一个极端。它什么都给你配好了——路由、表单验证、HTTP客户端、依赖注入,全在官方文档里。Google内部几百个项目用它,所以它必须稳。代价是重。一个Angular项目的初始包体积轻松超过React或Vue的两三倍。TypeScript是强制的,RxJS是核心依赖,学完这些你已经是半个架构师了。小项目用Angular,就像开卡车去超市买菜。
框架选型这件事,网上吵得厉害,但实际工作中往往没那么多选择余地。团队之前用什么,你就得用什么。我待过一家公司,项目是2016年用AngularJS(注意不是Angular)写的,招人的时候候选人一听技术栈就摇头。后来花了半年迁移到Vue,招聘难度立刻降了一档。这不是技术优劣的问题,是人才市场供需的问题。
再说说React生态。React本身只是一个UI库,但社区给它配齐了所有东西:Next.js管服务端渲染,React Router管路由,Redux或Zustand管状态,React Query管数据请求。这套组合拳打下来,项目结构确实清晰,但每个库都有自己的版本更新节奏。去年我升级一个项目,Next.js从12升到14,React从17升到18,中间踩了三个breaking change的坑,花了两天。Vue这边,从2升3也有破坏性变更,但官方给了兼容构建版本,迁移成本低不少。
性能方面,三个框架在常规业务场景下差距不大。真正卡顿的时候,问题通常出在开发者写了低效的渲染逻辑,而不是框架本身慢。我见过一个React列表页,每次滚动都重新渲染所有行,帧率掉到20以下。换成虚拟滚动,或者用memo包一下行组件,立刻回到60帧。框架提供了工具,用不用得好是另一回事。
还有一点容易被忽略:框架的就业市场价值。2024年的数据,React岗位数量大概是Vue的两倍,Angular排在第三。但Vue在国内中小厂和外包项目里占比很高,React在大型互联网公司和外企更常见。如果你要进大厂,React是更稳的选择。如果做独立项目或者小团队快速出活,Vue的DX(开发者体验)确实更舒服。
说到底,框架是工具。工具会过时,但组件化、响应式、声明式UI这些概念不会。学一个框架的时候,把精力花在理解它为什么这样设计上,比死记API有用得多。下一个框架出来的时候,你照样能快速上手。
友情链接