
如果你从事 Web 开发超过五个月,你就会知道该怎么做了。现在每隔几个月就会出现一个新的 JavaScript 框架,并承诺修复上一代框架的所有缺陷。
一开始,这很令人兴奋。语法更简洁,性能更好,麻烦更少!但经过多年从 React 到 Vue 再到 Svelte 再到 Solid(然后又回来)的跳转,我意识到不断追逐最新的 JavaScript 框架是在浪费时间。
别误会我的意思——创新技术当然很棒。但到了某个时候,你必须问问自己,我是否真的在创造事物,还是我只是在不断地重新学习如何以略有不同的方式创造同样的东西?
JavaScript 炒作周期永不停歇说实话,JavaScript 开发人员似乎痴迷于新奇事物。
每年都会有新的框架、新的打包器、新的元框架、新的状态管理方式。周期大致如下:
有人宣布了一个“改变游戏规则”的框架。它比之前的所有框架都更小、更快、更好。开发人员蜂拥而至。博客、教程、会议演讲 — 每个人都在大肆宣传它。公司犹豫不决。采用速度缓慢,因为他们有实际需要运行的生产应用程序。最初的兴奋逐渐消退。框架逐渐成熟,变得更加复杂,并开始变得像它最初试图取代的东西。用下一个热框架冲洗并重复此操作。还记得 Vue 曾被指要取代 React 吗?Svelte 曾指望它们两个都死掉吗?现在我们以同样的方式谈论 Solid 和 Qwik。与此同时,React 和 Angular 仍然存在,jQuery(是的,就是jQuery)仍然为大量网站提供支持。
在某个时候,我不得不问自己<<每年更换框架实际上能给我带来什么好处? >>
重写所有内容毫无成效我喜欢尝试新技术。我对性能提升、更好的 DX 和更清晰的语法感到兴奋。
但切换框架是有代价的,它会让你的开发速度变慢。
每次我使用一个新框架时,我必须:
学习新的组件语法。(再次)弄清楚状态管理。阅读新文档并修复奇怪的边缘情况。让我的团队(或我自己)相信这确实是值得的。那是为了什么呢?为了构建相同的 UI 组件、处理相同的 API 调用并管理与以前相同的状态?
在某个时候,我意识到我花在学习框架上的时间比实际构建东西上的时间还多。
“最佳框架”只是一个神话开发人员喜欢争论哪个框架最好。但事实是,没有最好的框架——只有权衡。
React为您提供了庞大的生态系统,但迫使您处理复杂的渲染模式。Vue很直观,但 Vuex、Pinia 及其构建工具却有自己的看法。Svelte消除了样板,但将你锁定在基于编译器的方法中。Solid为您提供类似 React 的人体工程学和更好的性能,但缺乏生态系统成熟度。Angular功能非常强大,但学习难度较高。每个框架都有优点和缺点。当你切换时,你只是将一组问题换成了另一组问题而已。
就业市场仍然由 React 和 Angular 主导现实情况是,公司并不关心最新的 JS 框架。
如果你正在找工作,React 和 Angular 仍然是主导力量。Vue 也占有相当大的份额。其余的呢?小众市场。
初创公司可能会尝试使用 Svelte 或 Solid,但大多数生产应用程序不会仅仅因为 Twitter 上出现了新的趋势就切换技术栈。
归根结底,公司需要稳定、可维护的代码库。他们不会仅仅因为听起来很酷就重建 Qwik 中的所有内容。
框架不会让你成为更好的开发人员有一次,我说服自己,掌握每一个新的 JS 框架会让我成为更好的开发人员。但事实是,在框架之间切换除了语法差异之外,几乎没有什么可以教给你。
什么实际上能让你成为更好的开发人员?
深入了解核心 JavaScript(异步、闭包、事件循环、原型)。学习系统设计(如何构建可扩展的应用程序)。编写可维护的代码(清晰的架构、测试、文档)。超越前端的思考(API、数据库、云部署)。优秀的开发人员并不是能够用 10 个框架重写待办事项应用程序的人。优秀的开发人员知道如何设计可行、可扩展且易于维护的软件 — — 无论使用什么框架。
我的做法我并不是说再也不会尝试新的框架。但我改变了我的方法:
✅坚持使用广泛采用的框架(React、Vue、Angular)。✅
只有在有真正原因的情况下才进行切换
✅专注于核心编程技能,而不仅仅是语法差异。✅多构建,少追逐。
下次有新的 JS 框架出现时,我不会急着重写项目。相反,我会专注于发布产品、编写可靠的代码以及提高我解决问题的能力。
最后的想法框架来来又去去。而真正重要的技能——解决问题、架构和干净的代码——将伴随你一生。
如果你总是从一个 JS 框架跳转到另一个,问问自己<<你真的进步了吗,还是只是在原地打转? >>