|
2016年我接手一个政府项目,端技前端组七个人用jQuery硬扛了三个月,术框代码里到处是端技`$('#id').click()`和字符串拼接的HTML。那会儿Angular还不叫Angular,术框叫AngularJS,端技React刚出到15版,术框Vue还在2.x的端技早期。现在回看,术框那套代码就像用算盘做云计算——能跑,端技但每次需求变更都要在几千行的术框回调地狱里找那根线头。 框架的端技本质是约束。React用单向数据流逼你理清状态,术框Vue用模板语法让你少写重复的端技DOM操作,Angular干脆连依赖注入和模块化都替你定好了。术框约束带来痛苦,端技但也带来秩序。我见过一个团队从零开始不用框架写SPA,半年后代码体积膨胀到8MB,路由切换时页面白屏三秒——因为没人规定组件该怎么销毁,事件监听器全堆在内存里。 选框架不是选技术,是选团队的心智模式。React的生态像热带雨林,什么都有,但你要自己找路;Vue的文档像瑞士军刀,官方路由器、状态管理、构建工具全配齐,新手照着抄就能跑通;Angular则是企业级的重型装甲,启动慢但结构严谨,适合长期维护的大型项目。说句得罪人的话——中小型项目用Angular,就像开着坦克去菜市场买菜,灵活性和开发效率都被碾压。 2020年有个创业公司找我咨询,技术栈是React+Redux+Saga,五个前端维护三个后台管理系统。我问他们为什么不用更轻的方案,答曰“大厂都在用”。结果每次迭代光写action和reducer就占了一半工时,Saga的generator函数看得新人直挠头。后来换成了Vue3+Pinia,两周就重构完了——不是React不行,是工具和场景错配了。框架从来不是越复杂越好,能让你少加班的就是好框架。 现在的前端圈有点走火入魔。Next.js、Nuxt、Remix轮番轰炸,Tailwind和CSS-in-JS打得不可开交,连表单校验都要引入hook form加zod。我见过一个简单的落地页,打包出来200KB的JS,就为了用React写几个按钮。技术选型时多问一句“这个项目真的需要SSR吗?”,能省下无数个调优的深夜。 框架迭代的速度快得吓人。jQuery统治了十年,React的fiber架构用了三年才普及,Vue3的Composition API到现在还有人骂。但底层逻辑没变:管理状态、操作DOM、处理副作用。你换个框架,不过是换一套语法糖来面对同样的问题。真正值钱的不是会用哪个框架,而是能看穿框架背后的设计决策——为什么React要引入Fiber?为什么Vue3要放弃Options API?想通这些,换个新框架也就是看两天文档的事。 最后说个扎心的观察:框架党争最凶的,往往是写业务代码最少的。真在项目里滚过的人,早就不吵了——哪个框架能让你在凌晨两点改完bug回家睡觉,哪个就是好框架。工具是为人服务的,别本末倒置。 |