2019,开发者应当进修的16个JavaScript框架

2019,开辟者应当进修的16个JavaScript框架

《2019,开发者应当进修的16个JavaScript框架》

  • 泉源 | 愿码(ChainDesk.CN)内容编辑
  • 愿码Slogan | 衔接每一个程序员的故事
  • 网站 | http://chaindesk.cn
  • 愿码愿景 | 打造全学科IT体系免费课程,助力小白用户、初级工程师0本钱免费体系进修、低本钱进阶,协助BAT一线资深工程师生长并运用本身上风制造睡后收入。
  • 官方民众号 | 愿码 | 愿码效劳号 | 区块链部落
  • 免费到场愿码全头脑工程师社群 | 任一民众号复兴“愿码”两个字猎取入群二维码

本文浏览时长:14min

依据Stack Overflow的开辟人员观察,JavaScript是最普遍运用的编程言语之一。由于其不断生长的框架生态体系,可认为庞杂和具有挑战性的题目找到最好处置惩罚方案。只管JavaScript的大部份生命周期都与Web开辟有关,但近年来,它的运用好像正在扩大。它不仅从前端挪动到后端,我们也最先看到它用于机械进修(Machine Learning, ML)和加强实际(Augmented Reality,简称 AR)。

JavaScript的生长是由框架驱动的。只管有一些在引领潮水,但另有许多其他较小的东西在2019年值得你关注。

JavaScript Web开辟框架

React

React最初由Facebook于2011年开辟,2013年开源。从那时起,它已成为构建用户界面的最盛行的JavaScript库之一。依据NPM的观察,只管React在2018年的增进放缓,但它将成为2019年的主导框架。由于其高运用率,2018年的JavaScript近况观察将其称为“采纳的平安手艺”。

在2018年,React团队宣告了从16.3到16.7的版本,并举办了一些严重更新。这些更新包括新的生命周期要领,Context API,用于代码拆分的牵挂,React Profiler,Create React App 2.0等。该团队已制订了2019年的设想,很快将宣告最期待的功用之一Hooks。它允许开辟人员在不运用JavaScript类的情况下接见状况等功用。它旨在经由历程允许开辟人员重用有状况逻辑而不对组件条理构造举办任何变动来简化React组件的代码。其他功用将包括并发形式,以允许组件树显现而不壅塞主线程,数据猎取的牵挂等等。

Vue

Vue是由Evan You在为许多项目运用AngularJS为Google事情后建立的。它在2014年初次宣告。分享他建立Vue的效果,Evan说:“我想,假如我能够提取我真正喜好Angular的部份并构建一些异常轻量级的东西会怎样 。” Vue继承在JavaScript开辟人员中取得很好的采纳,我疑心这类趋向很快就会住手。依据NPM观察,一些开辟人员更喜好Vue而不是React,由于他们以为“在坚持可扩大性的同时更轻易上手”。

Vue是一个允许开辟人员构建交互式Web界面的库。它供应相似于React的数据回响反映组件,具有简朴天真的API。与React或Angular差别,Vue的一个优点是它发生的清洁的HTML输出。其他JavaScript库每每会在代码中留下漫衍着分外属性的HTML,而Vue会删除它们以发生清洁的语义输出。它经由历程官方庇护的支撑库和包为庞杂运用程序供应高等功用,如路由,状况治理和构建东西。

Angular

谷歌于2009年开辟了AngularJS,并于2012年宣告了第一个版本。从那时起,它取得了企业和个人的热闹支撑和普遍采纳。AngularJS最初是为设想师而非开辟人员开辟的。虽然它确着实设想上看到了一些革新,但它们还不足以满足开辟人员的要求。厥后的版本,Angular 2,Angular 4等已晋级,供应机能的团体革新,特别是在速度和依靠注入方面。

新版本简称为Angular,这是一个平台和框架,允许开辟人员运用HTML和TypeScript构建客户端运用程序。它带有声明性模板,依靠注入,端到端东西以及处置惩罚开辟困难的集成最好实践。虽然AngularJS的架构基于模子 – 视图 – 控制器(MVC)设想,但Angular具有基于组件的架构。每一个Angular运用程序最少包括一个称为根组件的组件。每一个组件都与一个担任处置惩罚营业逻辑的类和一个代表视图层的模板相关联。

Node.js

缭绕Node是不是是一个框架(它确实是一个库)存在许多争辩,但在议论Web开辟时,很难跳过它。Node.js最初是由RyanDahl编写的,他在2009年11月8日举办的首届欧洲JSconf上演示了这一点。Node.js是一个免费的、开源的、跨平台的JavaScript运转时环境,在浏览器外实行JavaScript代码。

Node.js遵照“JavaScript无处不在”的范例,经由历程缭绕单一编程言语一致Web运用程序开辟,而不是效劳器端和客户端剧本的差别言语。在JSConf 2018中,Dahl形貌了他的效劳器端JavaScript运转时引擎的一些限定。其架构的许多部份都受到限定,包括平安性以及怎样治理模块。作为处置惩罚方案,他引入了一个名为Deno的新软件项目,这是一个V8 JavaScript引擎上的平安TypeScript运转时,旨在改正Node.js中的一些设想缺点。

跨平台挪动开辟框架

React Native

React Native的故事始于2013年炎天,当时它是Facebook的内部Hackathon项目,厥后于2015年开源。React Native是一个用于构建原生挪动运用程序的JavaScript框架。正如你能够已从其称号中猜到的那样,React Native基于React。它之所以被称为“本机”是由于运用React Native构建的UI包括本机UI小部件,这些小部件表面和觉得与运用本机言语构建的运用程序一致。

在背景,React Native将用Javascript/JSX编写的用户界面定义转换为合适目的平台的当地视图条理构造。比方,假如我们正在构建iOS运用程序,它会将Text原语转换为本机iOS UIView,而在Android中,它将运用本机TextView天生。因而,纵然我们正在编写JavaScript运用程序,我们也不会在挪动装备的shell中嵌入Web运用程序。我们正在取得一个“真正的原生运用”。

NativeScript

NativeScript由Telerik(Progress的子公司)开辟,于2014年初次宣告。它是一个开源框架,可协助您运用JavaScript或任何其他转换为JavaScript的言语(比方TypeScript)构建运用程序。它直接支撑Angular框架,并经由历程社区开辟的插件支撑Vue框架。运用NativeScript构建的挪动运用程序可天生完整本机运用程序,这些运用程序运用的API与在Xcode或Android Studio中开辟的API雷同。

由于运用程序是用JavaScript构建的,因而须要一些代办机制来将JavaScript代码转换为响应的本机API。这是由NativeScript的运转时部份完成的,它充任JavaScript和当地天下(Android和iOS)之间的“桥梁”。运转时能够运用JavaScript代码在Android和iOS框架中挪用API 。要做到这一点,须要运用JavaScript虚拟机——Google的V8用于Android,WebKit的JavaScript完成与iOS 7.0+一同宣告。

Ionic框架

该Ionic框架是由Drifty公司建立,最初宣告于2013年,它是一个开源的前端SDK,用于开辟夹杂挪动运用程序,运用熟习的Web手艺,如HTML5、CSS和JavaScript。借助Ionic,您将能够构建和布置跨多个平台的运用程序,比方本机iOS,Android,桌面和Web作为渐进式Web运用程序。

Ionic重要关注运用程序的表面或UI交互。这通知我们,它并不意味着庖代Cordova或你最喜好的JavaScript框架。事实上,它依然须要像Cordova如许的原生包装器来将您的运用程序作为挪动运用程序运转。它运用这些包装器来接见主机操纵体系功用,如相机,GPS,手电筒等。Ionic运用程序在初级浏览器外壳中运转,如iOS中的UIWebView或Android中的WebView,它由Cordova/PhoneGap等东西包装。

JavaScript桌面运用程序开辟框架

Electron

Electron由GitHub的软件工程师Cheng Zao建立。它最初于2013年作为Atom Shell宣告,然后在2015年更名为Electron.Electron使Web开辟人员能够运用他们现有的学问和当地开辟人员构建一个代码库并分别为每一个平台宣告。有许多盛行的运用程序运用Electron构建,包括Slack,Skype for Linux,Simplenote和Visual Studio Code等。

Electron运用程序由三个组件构成:Chromium Web引擎,Node.js诠释器和运用程序的源代码。Chromium Web引擎担任显现UI。Node.js诠释器实行JavaScript并为您的运用程序供应Chromium引擎没法运用的操纵体系功用,比方文件体系接见,收集,本机桌面功用等。运用程序的源代码通常是JavaScript,HTML和CSS。

JavaScript机械进修框架

Tensorflow.js

在2018年的TensorFlow开辟者峰会上,Google宣告了他们的机械进修框架TensorFlow的JavaScript完成,称为TensorFlow.js。它是deeplearn.js的继承者,于2017年8月宣告,如今命名为TensorFlow .js Core。该团队近来宣告了针对TensorFlow的Node.js绑定,所以如今雷同的JavaScript代码将同时适用于浏览器和Node.js.

Tensorflow.js由四层构成,即用于GPU支撑的数字操纵的WebGL API,用于用户交互的Web浏览器,以及两个API:Core和Layers。初级Core API对应于之前的deeplearn.js库,它供应硬件加速的线性代数运算和用于自动辨别的迫切API。更高等别的Layers API用于在Core之上构建机械进修模子。它还允许开辟人员运用Keras或TensorFlow SavedModels导入之前运用Python练习的模子,并将其用于在浏览器中举办推理或转移进修。

Brain.js

Brain.js是一个用JavaScript编写的神经收集库,是“Brain”库的连续,能够与Node.js一同运用或在浏览器中运用。它经由历程运用JavaScript的易用性和将API限定为几个要领挪用和选项,简化了建立和练习神经收集的历程。针对差别的使命,它具有差别范例的收集,包括具有反向流传的前馈神经收集,时候步长递归神经收集,时候步历久短时间影象神经收集等。

JavaScript加强实际(AR)和虚拟实际(VR)框架

React 360

2017年,Facebook和Oculus配合推出了React VR,后者于客岁改编并重新命名为React 360。这个革新的版本简化了3D空间中的UI规划,而且比React VR更快。React 360构建于我们之前讨论过的React之上,是一个JavaScript库,使开辟人员能够建立3D和VR界面。它允许Web开辟人员运用熟习的东西和观点在Web上建立沉醉式360体验。

运用React 360构建的运用程序由两部份构成,即在你的React运用程序和运转时,这两部份将您的组件转换为屏幕上的3D元素。这类“角色分别”观点相似于React Native。由于Web浏览器是单线程的,因而运用程序代码与显当代码星散,以防止运用程序中出现任何阻挠行动。经由历程在零丁的高低文中运转运用程序代码,显现轮回能够以高帧速度延续更新。

AR.js

AR.js由Jerome Etienne于2017年开辟,旨在在收集上有效地实行加强实际。它现在供应60fps的效力,这关于基于Web的开源处置惩罚方案来讲并不坏。该藏书楼受到了诸如three.js,ARToolKit 5,emscripten和Chromium等项目的启示。

AR.js须要WebGL,一种用于HTML5 Canvas元素的3D图形API,以及WebRTC,一组浏览器API和协定,允许在Web浏览器和本机运用程序中完成音频,视频和数据的及时通讯。运用ARToolKit和A-Frame中的功用, AR.js使得用于Web的AR的开辟成为一个简朴的历程,能够由新手编码器完成。

新兴的JavaScript框架

Gatsby.js

Gatsby的创始人凯尔马修斯在2017年辞去了他始创公司的事情,并最先全职专注于他的项目:Gatsby.js和Typography.js。Gatsby.js最初于2015年宣告,其第一个版本于2017年问世。它是React.js的当代网站天生器,这意味着Gatsby中的一切内容都是运用组件构建的。运用Gatsby,能够建立动态和静态网站/收集运用程序,从简朴的博客,电子商务网站到用户仪表板。

Gatsby支撑许多数据库源,比方Markdown文件,无内容CMS,如Contentful或 WordPress,或REST或GraphQL API,您能够经由历程GraphQL举办整合。它还能够经由历程自动化来完成代码拆分,图象优化,内联症结款式,耽误加载和预取资本等功用。

Next.js

Next.js由ZEIT建立并于2016年开源.Red.js构建于React,Webpack和Babel之上,是一个小型JavaScript框架,能够轻松完成React运用程序的效劳器端显现。它供应了自动代码支解,简朴的客户端路由,支撑HMR的基于Webpack的开辟环境等功用。它旨在协助开辟人员编写同构的React运用程序,以便雷同的显现逻辑可用于客户端和效劳器端显现。

Next.js基本上允许你编写一个React运用程序,SSR和代码拆分之类的东西会为你处置惩罚。它支撑两种效劳器端显现形式:按需和静态导出。按需显现意味着每一个要求,显现一个唯一的页面。此属性异常适用于高度动态的Web运用程序,个中内容常常变动,具有登录状况和相似用例。此形式须要运转Node.js效劳器。另一方面,静态导出会将一切页面预先显现为.html文件,并运用任何文件效劳器为其供应效劳。此形式不须要运转Node.js效劳器,HTML能够在任何地方运转。

Nuxt.js

Nuxt.js最初由Chopin兄弟,Alexandre和SébastienChopin建立,并于2016年宣告。2018年1月,它更新为临盆停当的1.0版本,并取得了一个活泼且取得优越支撑的社区的支撑。它是一个受Next.js启示的高等框架,它构建于Vue.js生态体系之上,简化了通用或单页Vue.js运用程序的开辟。

在背景,Nuxt.js运用带有vue-loader和babel-loader的webpack来绑缚,代码支解和减少代码。运用Nuxt,js的一个优点是它供应了一个nuxt generate敕令,它运用雷同的代码库天生Vue运用程序的完整静态版本。除此之外,它还为客户端和效劳器端之间的开辟供应了诸如异步数据,中间件,规划等功用。

NestJS

NestJS由Kamil Mysliwiec建立,于2017年宣告。它是一个轻松构建高效,牢靠和可扩大的Node.js效劳器端运用程序的框架。它建立在TypeScript和JavaScript(ES6,ES7,ES8)的基本之上,而且受Angular的启示,由于它们都运用允许可重用性的模块/组件体系。

在背景,NestJS运用Express,而且还与种种其他库兼容,比方,Fastify。关于它的大多数笼统,它运用类并运用类和TypeScript带来的装潢器和元数据反射的优点。它带有庇护,管道和拦截器等观点,并内置支撑其他传输,如WebSockets和gRPC。

这些是从大批的javascript框架中遴选出来的。你固然没必要成为他们一切的专家。在最先运用框架之前,你能够搜检它是不是有几个题目,比方它处置惩罚的题目,更好地实行雷同操纵的任何其他框架,是不是相符项目要求,此框架合适哪一种范例的项目等等,假如该框架对你有吸引力,能够会尝试用一个框架构建一个项目。

    原文作者:愿码社区技术团队
    原文地址: https://segmentfault.com/a/1190000018768719
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞