过去10年最重要的10个 JavaScript 框架

2020-02-25 12:36:45 浏览数 (1)

这是1024译站的第 56 篇文章

告别了2019年,我们迎来了21世纪的第三个十年。过去的这10年,前端技术领域异彩纷呈,各种框架层出不穷。回想当年 ECMAScript 5 发布时,谁会想到10年后我们会讨论是用const好还是let好?

这些年,我们见证了各种 JS 框架潮起潮落,有的曾风光一时,随后又黯然消逝;有的完全改变了我们构建软件的方式;还有的经受住了时间的考验,至今仍然是技术社区的宠儿。

我们一起来回顾过去10年影响了千千万万开发者的 JavaScript 框架。

这些框架是我们在软件开发方式上的革命,它们站在技术进步的前沿,通常会挑战现状,迎接软件开发的新时代。

本文选出的框架基于以下标准。当然,这些标准也比较主观:

  • 发布于 2010–2020 期间
  • 目前仍处于维护状态
  • 极大地影响了大量开发人员开发软件的方式
  • 可能给其他库提供了灵感,甚至催生出其他框架和库

如果你对这个榜单持不同意见,我觉得再正常不过了。欢迎你说出自己的理由,或者列出你心目中的榜单。框架排名不分先后,按照重要程度给框架排名本来就是不太合理的。

过去10年最重要的10个 JavaScript 框架:

1React

我想这个应该谁都不会觉得惊讶,毕竟React是最受欢迎的 JavaScript 库之一,有着庞大而充满活力的社区和大量的工作机会。很多人都认为 React 是一个“库”,不能算作框架。但是整个 React 生态如此繁荣,通常会跟其他框架一起作比较。

React 第一版发布于 2013 年5月29日,最新版本是v16.12,发布于2019年11月。最近发布的版本都是 bugfix,可见 React 已经很稳定了。

我们得感谢和支持 React 团队,因为他们不断推出新功能,让我们用 React 开发软件其乐无穷。

React 使用的虚拟 DOM (VDOM)diff 算法和单向数据流确实影响了大量开发者构建软件的方式,所以说 React 榜上有名当之无愧。

除了本身被大规模采用和庞大的社区,React 还催生出各种其他库,比如测试用的 Enzyme ,用于日期格式国际化的React Intl,甚至一整个框架比如Gatsby 和 Next。

2Express

发布于 2010 年11月的Express 成了用 JavaScript 构建 Web API 和 服务器的事实上的标准框架(得益于 Node.js)。很少有框架像 Express 这样发展成巨无霸,一家独大。

Express 让服务端 JavaScript 开发变得相当轻松,也给其他框架指引了方向,比如Koa.js 和 hapi。

Express 的社区支持也很强大,这也带来相应的好处,那就是测试很充分。单独使用 Express 本身也可以做很多事,但是它拥有的丰富的可配置中间件,才是真正让它大放异彩的地方。

中间件生态如此丰富,以至于你基本上完全不用从头再写任何东西,你想要的工具都有人写好了。丰富的中间件加上极简主义方法,Express 极大地影响了 web 开发。

3Backbone.js

虽然Backbone 逐渐被人遗忘了,开始淡出历史舞台,但它曾经也是领先的前端框架之一。如今,构建单页应用(SPA)已经是家常便饭了,但是在2010年 Backbone 发布之前,SPA 还是稀罕物。

作为单页应用的先驱,Backbone 让仅使用 JavaScript 构建复杂的web 应用程序变得非常容易,开创了一个快速、轻量级前端框架/库的时代。

尽管它采用了命令式的编程风格——这种风格逐渐被声明式风格取代——仍然可以说它普及了构建 Web 应用的 MVC 方式。

以上理由足以说明它应该在榜单上有一席之地,目前它也没有完全退出前端领域(虽然使用量在减少),也是最稳定的 JavaScript 框架。

4React Native

在 React Native 之前,将应用发布到不同平台通常需要多个代码库,以及不同的技术栈、团队和流程。

使用一种语言在所有平台上开发应用的能力,可以降低成本、减少团队管理开销,这是 React Native 能够流行的最重要的原因。

尽管用这种方式开发的混合应用没有原生应用性能好,大部分情况下也基本够用了。React Native 发展迅速,有着大量的相关工作机会和庞大的社区。

回顾 React Native 之前的软件开发领域,我们可以清楚地看到,在过去十年中,它对我们构建软件的方式产生了多么大的影响,而且随着新功能的不断增加,它也没有显示出任何放缓的迹象。

5Ionic

跨平台应用开发的另一个选手,Ionic 让大量的开发者能够开发出高性能的跨平台应用。

除了拥有良好的开发体验外,Ionic 还强调开放 web 标准,甚至将其作为核心理念。

自从2013年11月发布以来,作为一个平台,Ionic 一直在稳步成长和发展。由于其开源性质,Ionic 已经被开发社区广泛采用,有超过4万名GitHub star。

虽然它是这个榜单中不那么流行的一个,但它无疑影响了我们构建跨平台应用程序的方式,并且仍在日益增长。

6Vue.js

作为最受欢迎的 JavaScript 框架之一,Vue.js在前端框架领域曾经不被看好,最后被证明是错误的。这可能是因为与React 和 Angular 不同,它背后没有大型科技公司的支持。

虽然这个事实有利有弊,但是你不能否认 Vue 对 JavaScript 开发人员的影响。它是目前 GitHub 上最受关注的 JavaScript 框架,在StackOverflow 的2019年开发者调查中排名第二。

活跃的社区、开发时的易用性、轻量级,以及它仍在积极开发维护中,这些因素的结合表明 Vue 依然处于上升期。

7AngularJS/Angular

这样并排列举这两个框架显得有些滑稽,但是我倒觉得没有什么不妥,因为它们真的是两个不同的框架。

AngularJS 在 2010年首次发布,跟 Backbone 一样,是首批真正的 JavaScript MVC 框架之一。说它是首批,说明它在当时是革命性的,同时也远非完美。

它比其他框架如 Backbone 和 Ember 更难用,体积也更大,这就影响它在低端设备上的性能表现。加上它偏向于企业级应用开发,对新手来说更难入门。

这就是为什么又有了后来的 Angular。

Angular 和它的前身共享了很多相同的特性,比如 MVC 架构和声明式 UI 构建方法,但它也另辟蹊径,比如它在开发时切换到TypeScript,以及改进后的模块化方法。

Angular 目前是最受欢迎的前端框架之一,跟 React 和 Vue 一起,在前端技术领域三分天下。

8GatsbyJS

不得不承认,它是榜单上的后起之秀,但这并不是说它就不那么重要了。React GraphQL的时髦搭配正迅速成为许多开发人员的框架选择。它发展相当迅猛,不到三年的时间已经在GitHub上拥有了超过40000 个 star。

虽然说 Github star 数量并不是衡量一个框架重要性的官方标准,但它也是关注度的一个很好的指标。作为对比,jQuery 是长期以来最受欢迎的库之一,历史要长11年,目前的 star 数也才 50000 左右。

如此高的 star 数也说明 Gatsby 的受欢迎程度,也有着丰富的插件生态,足以证明它并不是昙花一现的东西。

它采用了一种不同的方法来构建 web 应用程序,主要用于生成静态站点,这些站点通常比 Angular 等传统框架更快、更容易访问和构建。

它的插件生态系统 如此庞大,以至于你基本上不用自己再开发什么了,只要专注于业务逻辑。很多开发者都表示,用了之后再也回不去了。

9Electron

这是另一个被低估的 JavaScript 框架,跟 React Native 有着类似的诞生背景。

Electron 是一个利用 web 技术(JavaScript,HTML,CSS)来构建跨平台桌面应用的框架。它与React Native 有很多相同的优点(和缺点),因为它让同一个开发团队能够针对不同的桌面环境进行开发。

事实证明它非常有用,已经被 Slack、微软(Microsoft) 、Atlassian 和阿里等大厂用于开发一些桌面应用。还有大量的独立开发者利用它开发各种应用程序。

还是那句老话:没有银弹。Electron 也不是完美的,但它在性能上足以应付大量现有的桌面应用,并且随着持续开发,相信它会越来越好。

10Mocha

要列举最重要的 JavaScript 框架,怎么能少了最流行的测试框架呢?(为什么不提 Jest?因为它只是个库,算不上框架)。

测试驱动开发(Test-driven development, TDD)已经变得非常流行,它是许多公司构建软件的默认方式。这可能得益于 JavaScript 测试框架/库的助力,而在这一热潮中最受欢迎的是 Mocha。

Mocha 是一个可扩展的 Node.js 测试框架。它提供了大量的特性,如浏览器支持、异步测试以及几乎可以使用任何断言库进行测试断言的支持。

Mocha 背后的灵活性、易用性、优秀的文档和庞大的社区使得它成为测试 Node 应用程序的不二之选。

总结

很明显本文的框架列表并不完整,如果继续列下去会很长。本文只是做个简单的回顾,欢迎大家各抒己见。

0 人点赞