转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
原文出处:https://blog.bitsrc.io/top-5-javascript-frameworks-past-present-and-future-8b6fda39de02

随着信息技术领域的发展,企业对于JavaScript的需求变得十分广泛,为了让前端编码更快更高效,一系列前端JavaScript框架就此诞生。

前端框架的设计初衷是为脚本编程语言提供出色的支持,让代码重复可用。简而言之,框架是由一组开发人员编写的代码块,可使整个开发过程变得简单且易于实现。从业务角度看,框架能使开发人员更容易满足客户的需求,解决客户项目开发阶段所面临的各种挑战。

那么,在众多前端框架中,哪些在2020年更受关注和追捧呢?

本文罗列了几个当下最受欢迎的前端框架,排名只是根据作者自身的使用经验、日常研究、框架的语法结构和易用性等特性进行排名。

以下是框架的排名依据参考:

  1. 是否保持增长和更新。
  2. 是否在大厂和开发者社群中受到推荐,如GitHub、NPM趋势、Google趋势等。
  3. 是否具备一个规模庞大且活跃的技术社区。

5. velte.js —— 麻雀虽小,五脏俱全

在React、Vue和Angular差不多占据了Web开发的大部分江山时,Svelte横空出世,并逐渐开始吸引越来越多人的眼球。这是一个用TypeScript编写的基于组件的开源JavaScript框架,于2016年发布。

2020年以来,Svelte的使用量急剧增加。

尤雨溪曾评价道:Svelte 的核心思想在于“通过静态编译减少框架运行时的代码量”,因此其非常适合开发小而快速迭代的项目,而且能做到极致精简。

Svelte的优势:

  1. 与React不同,Svelte没有虚拟DOM。其组件完全用HTML、CSS和JavaScript编写。
  2. Svelte编译器可编译原始JavaScript模块,该模块不依赖于框架。因此,与React、Angular和Vue相比,Svelte应用程序的捆绑包尺寸非常小。
  3. Svelte不需要较高的浏览器处理能力,即可实现类似外科手术般的方式更新DOM。

4.Ember.js —— 明显提高开发人员工作效率的生产工具

Ember.js是一款用于构建现代Web应用程序且功能全面的JavaScript框架,基于双向数据绑定概念(如AngularJS和React等SSR)运行,允许开发人员将更多精力放在创建独特的业务功能上。

由于Ember不再需要编写繁琐的代码,因此,开发人员的开发效率能够明显得到提升。目前,越来越多的一流公司开始在其产品中使用Ember,如Netflix、Microsoft和LinkedIn。

Ember自发布以来,在开发人员社区中的使用率逐渐增加。

尽管Ember主要用于Web开发,但使用Ember.js搭建的桌面和移动应用程序也同样引人瞩目,而其中的代表作品就是Apple Music桌面应用程序。

3. Angular —— 一个可靠的框架

Google在2016年推出了Angular。但是,它的前身AngularJS可以追溯到2010年。在早期,React的流行将Angular甩在后面。但是,事实证明Angular仍是开发一款可靠的企业级应用的首选。

Angular受欢迎的原因:

  1. 拥有一个维持了十多年的大型生态系统。
  2. 具备全套开发工具。
  3. 允许高质量的代码生成,具有清晰的编码结构和代码一致性。
  4. 拥有出色的文档,其库为开发人员提供了大量支持。
  5. 日益增加的社区支持。

如果将Angular与React进行比较,我们可以观察到Angular的下载量并没有增加太多,并在过去两年中几乎达到饱和水平。

2 React —— 最受欢迎的框架

React是一个开源前端库,由Facebook开发团队的软件工程师于2011年创建,随后于2013年正式开源。经过9年的发展,目前它被认为是最受欢迎的前端库之一。

React为前端开发引入了一种基于组件的、响应式的、函数式的编程风格,一举改变了单页应用程序(SPA)的发展方向。

为什么 React 如此受欢迎?

  1. React 引入了基于组件级的渲染机制。
  2. 提供了强大的服务端渲染(SSR),对SEO有良好的支持。
  3. 提供了更好并发性的React Fiber,使用了更少模板代码来管理功能组件的React Hooks,以及用于获得更好渲染效果的React suspense等功能。
  4. 一旦学会了React,可以在任何地方使用它,不仅可以用于Web应用程序,同时也可以在移动应用程序中使用(React Native)。

众多优秀的功能使React成为当今最受欢迎的框架之一,而NPM的下载量也证明了这一点。

如图所示,在过去的5年里,React在下载量方面一直在前端框架中占据着主导地位。

就Stack Overflow技术问题总量趋势看,React也同样如此。

1 Vue.js —— 其受欢迎程度已经不需要多说了

其他框架

  • Meteor一度被认为是用于开发和部署Web应用程序的全栈解决方案。
  • Mithril:用于开发SPA的UI JavaScript框架,提供了开箱即用的路由和XHR实用程序,并且快速,易于实现。
  • Aurelia被认为是JavaScript的最新版本,可以扩展HTML的多种用途,包括数据绑定。
  • Polymer:一个由Google推出的开源代码库,可以为网站创建元素而无需进入复杂的层次。支持单向和双向数据绑定。

结论

本文提及的所有JavaScript库和框架都具有巨大的潜力,熟练的掌握它们,将为您的JavaScript开发带来更多好处。

如果您有兴趣了解更多的JavaScript框架和库,可以阅读以下文章链接。

排名靠前的几个JS框架发展趋势和前景的更多相关文章

  1. 前端Js框架 UI框架汇总 特性 适用范围 选择

    身为一个资深后端工程师,面对层出不穷的前端框架,总让人眼花缭乱,做一个综合解析贴,从全局着眼,让我们明白各种前端框架的应用范围,为如何选择前端框架,从不同的维度提供一些线索,做为一个长期优化贴,欢迎指 ...

  2. (转)2018几大主流的UI/JS框架——前端框架 [Vue.js(目前市场上的主流)]

    https://blog.csdn.net/hu_belif/article/details/81258961 2016年开始应该是互联网飞速发展的几年,同时也是Web前端开发非常火爆的一年,Web ...

  3. 【转】node.js框架比较

    我偶然间看到这篇文章,转这个文章并没有什么含义,仅仅是感觉总结的不错,对于新学node的友友们来说希望这篇文章为大家对 Node.js 后端框架选型带来一些帮助,学习不再迷茫,也是让我有个保存,以后参 ...

  4. 借鉴一些关于js框架的东西

    八款Js框架介绍及比较,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx,componentartu ...

  5. 13个精选的React JS框架

    如果你正在使用 React.js 或 React Native 创建用户界面,可以试一试本文推荐的这些框架. React.js 和 React Native 是流行的用户界面(UI)开发平台,且都是开 ...

  6. 前端Js框架汇总

    概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领域心花路放,也是煞是羡慕.寻了寻.net的消息,也是振奋人心,.net co ...

  7. Node.js 框架

    Node.js的是一个JavaScript平台,它允许你建立大型的Web应用程序.  Node.js的框架平台使用JavaScript作为它的脚本语言来构建可伸缩的应用. 当涉及到Web应用程序的开发 ...

  8. js框架简明

    jquery 主要战场还是在dom这块.其它经典怀旧的2个需要了解一下,mootools, prototype.是他们启发了js向工程化,团队化,协作化发展的转变,yui虽然听说停止开发了,但他的代码 ...

  9. Vue 浅谈前端js框架vue

    Vue Vue近几年来特别的受关注,三年前的时候angularJS霸占前端JS框架市场很长时间,接着react框架横空出世,因为它有一个特性是虚拟DOM,从性能上碾轧angularJS,这个时候,vu ...

随机推荐

  1. pormise和async

    pormise 1.异步问题 假设现在我刚认识你,需要和你说话,但是我普通话不够标准,需要间隔一秒钟才能说一句话,以此让你可以慢慢思考.这样的话我们就需要用到定时器. 最沙雕的代码如下: setTim ...

  2. 测试工具-XPath使用

    XML有两种MIME类型,即application/xml和text/xml,在HTTP中,MIME Type类型被定义在Content-Type header中.我们经常也会看到接口返回数据类型为X ...

  3. nginx 1.12 负载均衡配置

    负载均衡策略有以下几种: 请求轮询:round-robin,是默认策略,应用服务器的请求以循环方式分发,可以设置权重weight,默认权重均为1,因此每台后端服务器接受的请求数相同. 最少连接:lea ...

  4. Maven环境搭建及常用命令、生命周期

    一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试  mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...

  5. Python-序列切片原理和切片协议-[start:end:step] __getitem__

    切片原理图(顾头不顾尾的正则原理) # [0:1] 其实只取到C, 取e则 [-1:], 如果步长为负数则倒过来取,从第几个往回取 name = "ChuiXue" print(n ...

  6. 怎样优雅的实现INotifyPropertyChanged

    第一 安装nuget包 PropertyChanged.Fody. 第二 在类的上方加上 [PropertyChanged.AddINotifyPropertyChangedInterface] 类似 ...

  7. CLP(FD)有限域上的约束逻辑式编程

    译自http://www.pathwayslms.com/swipltuts/clpfd/clpfd.html#_simple_constraints,SWI-Prolog官网所推荐的进阶教程.目前还 ...

  8. 02 Writing Your First Program 写你的第一个C程序

    Let's print "Hi" 打印输出"Hi" In your first computer program, let's print something ...

  9. PJzhang:鸟哥的linux私房菜-shell脚本-上

    猫宁~~~ 建议全程在centos7中进行,我在kali linux中有些命令无法执行. 1~家目录下创建bin文件,test.sh文件在bin目录 下面的shell代码打印Hello World! ...

  10. C#与sql进行图片存取

    1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Da ...