今天层出不穷的框架让人眼花缭乱,不知如何选择。今天我将对五款最流行的前端JavaScript框架进行比较,并对其主要特性、工具、学习曲线等因素进行概述和介绍,以帮助您做出衡量和选择。流行度指标根据2020年JavaScript现状调查确定框架的流行度。该调查由23,765名受访者完成,结果如下:React:80%Angular:56%Vue.js:49%Svelte:15%PreACT:13%还考虑了同一调查的“框架意识”:React:100%Angular:100%Vue.js:99%Ember:88%Svelte:86%前端框架的定义出于本文的目的,本文将使用MartinFowler提供的定义:库本质上是一个开发人员可以进行的一组调用功能,通常组织成类。调用以执行一些工作并将控制权返回给客户端。该框架体现了抽象设计,并具有更多的内置行为。开发人员通过子类化或插入自己的类,将行为插入到框架的不同位置,框架在这些点调用代码。1.React于2013年由Facebook发布,是当今最流行的前端框架。应用于Facebook、Netflix、Airbnb等公司,拥有大量的开发者和丰富的学习资源。有很多与React相关的工具。团队提供的CLI用于轻松构建新项目,工具扩展适用于Chrome和Firefox。包含许多用于各种任务(例如,路由、处理表单和动画)的第三方包,以及几个基于React的框架,例如Next.js和Gatsby。React秉承“一次学习,随处编写”的理念。它使用ReactNative为移动应用程序提供动力,使用Node在服务器上呈现,并具有出色的SEO支持。主流思想认为React过于简单:只涉及应用的视图层,全部交给开发者,自由度过高众说纷纭。如果你这样做,学习曲线是适度的。React鼓励开发者使用各种函数式编程范式(例如不变性和纯函数),并要求开发者在构建之前对基本概念有一个基本的了解。一般来说,如果您对React的自由度感到满意,那么对于任何规模的数据驱动应用程序都是理想的选择。2.Angular作为谷歌在前端盒子里提供的产品,在2010年以AngularJS(或Angular1)的形式诞生,一炮而红,主要是因为第一个框架让开发者能够构建现在所谓的单页应用程序。为了解决性能问题和构建大型JavaScript应用程序的挑战,谷歌重写了AngularJS,并于2016年发布了Angular2(今天只是Angular)。AngularJS和Angular已经成为两个独立的框架,因为它们不能轻易迁移。Angular在前端框架中占有重要地位。经过严格测试已经被谷歌、微软等公司投入生产使用,相关在线资源也非常丰富。与仅处理视图层的React不同,Angular为构建单页客户端应用程序提供了完整的解决方案。Angular组件实现双向数据绑定,在父子组件之间同时监听事件和更新值。模板是HTML的一部分,它允许特殊语法利用Angular的许多特性。TypeScript是Angular开发的主要语言,因此该框架非常适合企业和应用程序。从相关工具来看,Angular提供了高度完善的CLI来初始化、开发、构建和维护它的应用程序,Chrome和FirefoxDevTools扩展可用于调试Angular应用程序。但从学习的角度来看,Angulard的学习曲线最为陡峭。开发人员需要熟悉TypeScript才能工作。不是新手最好的选择,更适合在团队中发挥作用。3.Vue.js注意:统计适用于Vuev2,版本3可用,必须安装vue@next。Vue是一个模型-视图-视图模型(MVVM)前端框架,用于构建用户界面和单页应用程序。由EvanYou撰写,于2014年首次发布。Vue已被阿里巴巴、Gitlab和Adob??e等公司用于生产。它可以说是所有框架中最好的文档,而且它的论坛是获得编码问题帮助的重要资源。Vue在PHP世界很流行,是Laravel框架的一部分。Vue的核心卖点是它从头开始设计,可以逐步采用。即Vue可以增强常规网页的功能,或者用组件改进单页应用。同时,Angular可以将属性绑定到基于HTML的基础数据模型上,并提供单一文件组件。在相关工具的完备性方面,一方面,官方提供的CLI可以搭建脚手架,开发Vue应用,Chrome和Firefox都有devtoolsextensions帮助调试。与React不同,Vue提供了路由和状态管理的官方包,提供了方便和标准化的处理方式,以及各种第三方工具和基于Vue的框架。但相对于其他框架,入门门槛很低,适合经验不足的开发者。4.Svelte由RichHarris于2016年发布,作为前端框架的新成员,Svelte采用了不同于其他框架的方法来构建Web应用程序。它避开了虚拟DOM的概念,在构建过程中将代码编译成小型原始JavaScript模块,这些模块会随着开发人员应用程序状态的变化而更新DOM。实现了体积小、速度快的应用。RichHarris学习曲线低,社区小,但它已被IBM和《纽约时报》等公司用于生产,并且在未来具有巨大潜力。由于成熟度低,它只被小项目首选,但情况逐渐发生了变化。SvelteKit处于公开测试阶段,社区在不断壮大。虽然Svelte目前还很年轻,但开发者还是要注意。5.Ember.js最后介绍Ember自前端框架问世以来就已经存在。它最初于2011年发布,在开发领域仍然很受欢迎:它的历史可以追溯到React、Vue、Svelte和其他所有工具之前。该框架从未处于前端炒作的最前沿,但它仍在稳步发展。合作伙伴包括Qonto和CLARK,它们是2020年欧洲50强金融科技公司中的两家。Ember与Angular一样,采用更具电池包容性的应用程序开发方法,并提供构建现代前端JavaScript应用程序所需的一切。遵循六周的发布周期并具有出色的稳定性。相关工具方面,相关工具很多,从EmberCLI到EmberInspector,还有很多第三方库可用。它的社区不像其他流行的框架社区那么大,但它的成员参与度很高,并且通过它的论坛和Discord服务器,很容易找到编码问题的帮助。如果开发人员要学习,学习曲线从中等到陡峭,对于初学者或较小的项目,Ember可能不是最佳选择。它有许多移动部件,并且在作为团队工作的一部分组织事情时没有提供很大的灵活性。结束语本文对目前市场上最流行的五种前端框架进行了比较,为开发者根据个人能力和项目需求进行选择提供更好的参考。
