亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

2019,開發(fā)者應(yīng)該學(xué)習(xí)的16個JavaScript框架

Harpsichord1207 / 1973人閱讀

摘要:它不僅從前端移動到后端,我們也開始看到它用于機(jī)器學(xué)習(xí)和增強(qiáng)現(xiàn)實,簡稱。由于其高使用率,年的現(xiàn)狀調(diào)查將其稱為采用的安全技術(shù)。機(jī)器學(xué)習(xí)框架在年的開發(fā)者峰會上,宣布了他們的機(jī)器學(xué)習(xí)框架的實現(xiàn),稱為。更高級別的用于在之上構(gòu)建機(jī)器學(xué)習(xí)模型。

2019,開發(fā)者應(yīng)該學(xué)習(xí)的16個JavaScript框架

來源 | 愿碼(ChainDesk.CN)內(nèi)容編輯

愿碼Slogan | 連接每個程序員的故事

網(wǎng)站 | http://chaindesk.cn

愿碼愿景 | 打造全學(xué)科IT系統(tǒng)免費課程,助力小白用戶、初級工程師0成本免費系統(tǒng)學(xué)習(xí)、低成本進(jìn)階,幫助BAT一線資深工程師成長并利用自身優(yōu)勢創(chuàng)造睡后收入。

官方公眾號 | 愿碼 | 愿碼服務(wù)號 | 區(qū)塊鏈部落

免費加入愿碼全思維工程師社群 | 任一公眾號回復(fù)“愿碼”兩個字獲取入群二維碼

本文閱讀時長:14min

根據(jù)Stack Overflow的開發(fā)人員調(diào)查,JavaScript是最廣泛使用的編程語言之一。由于其不斷發(fā)展的框架生態(tài)系統(tǒng),可以為復(fù)雜和具有挑戰(zhàn)性的問題找到最佳解決方案。盡管JavaScript的大部分生命周期都與Web開發(fā)有關(guān),但近年來,它的使用似乎正在擴(kuò)大。它不僅從前端移動到后端,我們也開始看到它用于機(jī)器學(xué)習(xí)(Machine Learning, ML)和增強(qiáng)現(xiàn)實(Augmented Reality,簡稱 AR)。

JavaScript的發(fā)展是由框架驅(qū)動的。盡管有一些在引領(lǐng)潮流,但還有許多其他較小的工具在2019年值得你關(guān)注。

JavaScript Web開發(fā)框架

React

React最初由Facebook于2011年開發(fā),2013年開源。從那時起,它已成為構(gòu)建用戶界面的最流行的JavaScript庫之一。根據(jù)NPM的調(diào)查,盡管React在2018年的增長放緩,但它將成為2019年的主導(dǎo)框架。由于其高使用率,2018年的JavaScript現(xiàn)狀調(diào)查將其稱為“采用的安全技術(shù)”。

在2018年,React團(tuán)隊發(fā)布了從16.3到16.7的版本,并進(jìn)行了一些重大更新。這些更新包括新的生命周期方法,Context API,用于代碼拆分的懸念,React Profiler,Create React App 2.0等。該團(tuán)隊已經(jīng)制定了2019年的計劃,很快將發(fā)布最期待的功能之一Hooks。它允許開發(fā)人員在不使用JavaScript類的情況下訪問狀態(tài)等功能。它旨在通過允許開發(fā)人員重用有狀態(tài)邏輯而不對組件層次結(jié)構(gòu)進(jìn)行任何更改來簡化React組件的代碼。其他功能將包括并發(fā)模式,以允許組件樹呈現(xiàn)而不阻塞主線程,數(shù)據(jù)獲取的懸念等等。

Vue

Vue是由Evan You在為許多項目使用AngularJS為Google工作后創(chuàng)建的。它在2014年首次發(fā)布。分享他創(chuàng)建Vue的動機(jī),Evan說:“我想,如果我能夠提取我真正喜歡Angular的部分并構(gòu)建一些非常輕量級的東西會怎樣 ?!?Vue繼續(xù)在JavaScript開發(fā)人員中得到很好的采用,我懷疑這種趨勢很快就會停止。根據(jù)NPM調(diào)查,一些開發(fā)人員更喜歡Vue而不是React,因為他們覺得“在保持可擴(kuò)展性的同時更容易上手”。

Vue是一個允許開發(fā)人員構(gòu)建交互式Web界面的庫。它提供類似于React的數(shù)據(jù)反應(yīng)組件,具有簡單靈活的API。與React或Angular不同,Vue的一個好處是它產(chǎn)生的干凈的HTML輸出。其他JavaScript庫往往會在代碼中留下散布著額外屬性的HTML,而Vue會刪除它們以產(chǎn)生干凈的語義輸出。它通過官方維護(hù)的支持庫和包為復(fù)雜應(yīng)用程序提供高級功能,如路由,狀態(tài)管理和構(gòu)建工具。

Angular

谷歌于2009年開發(fā)了AngularJS,并于2012年發(fā)布了第一個版本。從那時起,它得到了企業(yè)和個人的熱烈支持和廣泛采用。AngularJS最初是為設(shè)計師而非開發(fā)人員開發(fā)的。雖然它確實在設(shè)計上看到了一些改進(jìn),但它們還不足以滿足開發(fā)人員的要求。后來的版本,Angular 2,Angular 4等已經(jīng)升級,提供性能的整體改進(jìn),特別是在速度和依賴注入方面。

新版本簡稱為Angular,這是一個平臺和框架,允許開發(fā)人員使用HTML和TypeScript構(gòu)建客戶端應(yīng)用程序。它帶有聲明性模板,依賴注入,端到端工具以及解決開發(fā)難題的集成最佳實踐。雖然AngularJS的架構(gòu)基于模型 - 視圖 - 控制器(MVC)設(shè)計,但Angular具有基于組件的架構(gòu)。每個Angular應(yīng)用程序至少包含一個稱為根組件的組件。每個組件都與一個負(fù)責(zé)處理業(yè)務(wù)邏輯的類和一個代表視圖層的模板相關(guān)聯(lián)。

Node.js

圍繞Node是否是一個框架(它確實是一個庫)存在很多爭論,但在談?wù)揥eb開發(fā)時,很難跳過它。Node.js最初是由RyanDahl編寫的,他在2009年11月8日舉行的首屆歐洲JSconf上演示了這一點。Node.js是一個免費的、開源的、跨平臺的JavaScript運行時環(huán)境,在瀏覽器外執(zhí)行JavaScript代碼。

Node.js遵循“JavaScript無處不在”的范例,通過圍繞單一編程語言統(tǒng)一Web應(yīng)用程序開發(fā),而不是服務(wù)器端和客戶端腳本的不同語言。在JSConf 2018中,Dahl描述了他的服務(wù)器端JavaScript運行時引擎的一些限制。其架構(gòu)的許多部分都受到限制,包括安全性以及如何管理模塊。作為解決方案,他引入了一個名為Deno的新軟件項目,這是一個V8 JavaScript引擎上的安全TypeScript運行時,旨在糾正Node.js中的一些設(shè)計缺陷。

跨平臺移動開發(fā)框架

React Native

React Native的故事始于2013年夏天,當(dāng)時它是Facebook的內(nèi)部Hackathon項目,后來于2015年開源。React Native是一個用于構(gòu)建原生移動應(yīng)用程序的JavaScript框架。正如你可能已經(jīng)從其名稱中猜到的那樣,React Native基于React。它之所以被稱為“本機(jī)”是因為使用React Native構(gòu)建的UI包含本機(jī)UI小部件,這些小部件外觀和感覺與使用本機(jī)語言構(gòu)建的應(yīng)用程序一致。

在后臺,React Native將用Javascript/JSX編寫的用戶界面定義轉(zhuǎn)換為適合目標(biāo)平臺的本地視圖層次結(jié)構(gòu)。例如,如果我們正在構(gòu)建iOS應(yīng)用程序,它會將Text原語轉(zhuǎn)換為本機(jī)iOS UIView,而在Android中,它將使用本機(jī)TextView生成。因此,即使我們正在編寫JavaScript應(yīng)用程序,我們也不會在移動設(shè)備的shell中嵌入Web應(yīng)用程序。我們正在獲得一個“真正的原生應(yīng)用”。

NativeScript

NativeScript由Telerik(Progress的子公司)開發(fā),于2014年首次發(fā)布。它是一個開源框架,可幫助您使用JavaScript或任何其他轉(zhuǎn)換為JavaScript的語言(例如TypeScript)構(gòu)建應(yīng)用程序。它直接支持Angular框架,并通過社區(qū)開發(fā)的插件支持Vue框架。使用NativeScript構(gòu)建的移動應(yīng)用程序可生成完全本機(jī)應(yīng)用程序,這些應(yīng)用程序使用的API與在Xcode或Android Studio中開發(fā)的API相同。

由于應(yīng)用程序是用JavaScript構(gòu)建的,因此需要一些代理機(jī)制來將JavaScript代碼轉(zhuǎn)換為相應(yīng)的本機(jī)API。這是由NativeScript的運行時部分完成的,它充當(dāng)JavaScript和本地世界(Android和iOS)之間的“橋梁”。運行時可以使用JavaScript代碼在Android和iOS框架中調(diào)用API 。要做到這一點,需要使用JavaScript虛擬機(jī)——Google的V8用于Android,WebKit的JavaScript實現(xiàn)與iOS 7.0+一起發(fā)布。

Ionic框架

該Ionic框架是由Drifty公司創(chuàng)建,最初發(fā)布于2013年,它是一個開源的前端SDK,用于開發(fā)混合移動應(yīng)用程序,使用熟悉的Web技術(shù),如HTML5、CSS和JavaScript。借助Ionic,您將能夠構(gòu)建和部署跨多個平臺的應(yīng)用程序,例如本機(jī)iOS,Android,桌面和Web作為漸進(jìn)式Web應(yīng)用程序。

Ionic主要關(guān)注應(yīng)用程序的外觀或UI交互。這告訴我們,它并不意味著取代Cordova或你最喜歡的JavaScript框架。事實上,它仍然需要像Cordova這樣的原生包裝器來將您的應(yīng)用程序作為移動應(yīng)用程序運行。它使用這些包裝器來訪問主機(jī)操作系統(tǒng)功能,如相機(jī),GPS,手電筒等。Ionic應(yīng)用程序在低級瀏覽器外殼中運行,如iOS中的UIWebView或Android中的WebView,它由Cordova/PhoneGap等工具包裝。

JavaScript桌面應(yīng)用程序開發(fā)框架

Electron

Electron由GitHub的軟件工程師Cheng Zao創(chuàng)建。它最初于2013年作為Atom Shell發(fā)布,然后在2015年更名為Electron.Electron使Web開發(fā)人員能夠利用他們現(xiàn)有的知識和本地開發(fā)人員構(gòu)建一個代碼庫并分別為每個平臺發(fā)布。有許多流行的應(yīng)用程序使用Electron構(gòu)建,包括Slack,Skype for Linux,Simplenote和Visual Studio Code等。

Electron應(yīng)用程序由三個組件組成:Chromium Web引擎,Node.js解釋器和應(yīng)用程序的源代碼。Chromium Web引擎負(fù)責(zé)呈現(xiàn)UI。Node.js解釋器執(zhí)行JavaScript并為您的應(yīng)用程序提供Chromium引擎無法使用的操作系統(tǒng)功能,例如文件系統(tǒng)訪問,網(wǎng)絡(luò),本機(jī)桌面功能等。應(yīng)用程序的源代碼通常是JavaScript,HTML和CSS。

JavaScript機(jī)器學(xué)習(xí)框架

Tensorflow.js

在2018年的TensorFlow開發(fā)者峰會上,Google宣布了他們的機(jī)器學(xué)習(xí)框架TensorFlow的JavaScript實現(xiàn),稱為TensorFlow.js。它是deeplearn.js的繼承者,于2017年8月發(fā)布,現(xiàn)在命名為TensorFlow .js Core。該團(tuán)隊最近發(fā)布了針對TensorFlow的Node.js綁定,所以現(xiàn)在相同的JavaScript代碼將同時適用于瀏覽器和Node.js.

Tensorflow.js由四層組成,即用于GPU支持的數(shù)字操作的WebGL API,用于用戶交互的Web瀏覽器,以及兩個API:Core和Layers。低級Core API對應(yīng)于以前的deeplearn.js庫,它提供硬件加速的線性代數(shù)運算和用于自動區(qū)分的急切API。更高級別的Layers API用于在Core之上構(gòu)建機(jī)器學(xué)習(xí)模型。它還允許開發(fā)人員使用Keras或TensorFlow SavedModels導(dǎo)入之前使用Python訓(xùn)練的模型,并將其用于在瀏覽器中進(jìn)行推理或轉(zhuǎn)移學(xué)習(xí)。

Brain.js

Brain.js是一個用JavaScript編寫的神經(jīng)網(wǎng)絡(luò)庫,是“Brain”庫的延續(xù),可以與Node.js一起使用或在瀏覽器中使用。它通過利用JavaScript的易用性和將API限制為幾個方法調(diào)用和選項,簡化了創(chuàng)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程。針對不同的任務(wù),它具有不同類型的網(wǎng)絡(luò),包括具有反向傳播的前饋神經(jīng)網(wǎng)絡(luò),時間步長遞歸神經(jīng)網(wǎng)絡(luò),時間步長期短期記憶神經(jīng)網(wǎng)絡(luò)等。

JavaScript增強(qiáng)現(xiàn)實(AR)和虛擬現(xiàn)實(VR)框架

React 360

2017年,F(xiàn)acebook和Oculus共同推出了React VR,后者于去年改編并重新命名為React 360。這個改進(jìn)的版本簡化了3D空間中的UI布局,并且比React VR更快。React 360構(gòu)建于我們之前討論過的React之上,是一個JavaScript庫,使開發(fā)人員能夠創(chuàng)建3D和VR界面。它允許Web開發(fā)人員使用熟悉的工具和概念在Web上創(chuàng)建沉浸式360體驗。

使用React 360構(gòu)建的應(yīng)用程序由兩部分組成,即在你的React應(yīng)用程序和運行時,這兩部分將您的組件轉(zhuǎn)換為屏幕上的3D元素。這種“角色劃分”概念類似于React Native。由于Web瀏覽器是單線程的,因此應(yīng)用程序代碼與呈現(xiàn)代碼分離,以避免應(yīng)用程序中出現(xiàn)任何阻止行為。通過在多帶帶的上下文中運行應(yīng)用程序代碼,呈現(xiàn)循環(huán)可以以高幀速率持續(xù)更新。

AR.js

AR.js由Jerome Etienne于2017年開發(fā),旨在在網(wǎng)絡(luò)上有效地實施增強(qiáng)現(xiàn)實。它目前提供60fps的效率,這對于基于Web的開源解決方案來說并不壞。該圖書館受到了諸如three.js,ARToolKit 5,emscripten和Chromium等項目的啟發(fā)。

AR.js需要WebGL,一種用于HTML5 Canvas元素的3D圖形API,以及WebRTC,一組瀏覽器API和協(xié)議,允許在Web瀏覽器和本機(jī)應(yīng)用程序中實現(xiàn)音頻,視頻和數(shù)據(jù)的實時通信。利用ARToolKit和A-Frame中的功能, AR.js使得用于Web的AR的開發(fā)成為一個簡單的過程,可以由新手編碼器實現(xiàn)。

新興的JavaScript框架

Gatsby.js

Gatsby的創(chuàng)始人凱爾馬修斯在2017年辭去了他初創(chuàng)公司的工作,并開始全職專注于他的項目:Gatsby.js和Typography.js。Gatsby.js最初于2015年發(fā)布,其第一個版本于2017年問世。它是React.js的現(xiàn)代網(wǎng)站生成器,這意味著Gatsby中的所有內(nèi)容都是使用組件構(gòu)建的。使用Gatsby,可以創(chuàng)建動態(tài)和靜態(tài)網(wǎng)站/網(wǎng)絡(luò)應(yīng)用程序,從簡單的博客,電子商務(wù)網(wǎng)站到用戶儀表板。

Gatsby支持許多數(shù)據(jù)庫源,例如Markdown文件,無內(nèi)容CMS,如Contentful或 WordPress,或REST或GraphQL API,您可以通過GraphQL進(jìn)行整合。它還可以通過自動化來實現(xiàn)代碼拆分,圖像優(yōu)化,內(nèi)聯(lián)關(guān)鍵樣式,延遲加載和預(yù)取資源等功能。

Next.js

Next.js由ZEIT創(chuàng)建并于2016年開源.Red.js構(gòu)建于React,Webpack和Babel之上,是一個小型JavaScript框架,可以輕松實現(xiàn)React應(yīng)用程序的服務(wù)器端呈現(xiàn)。它提供了自動代碼分割,簡單的客戶端路由,支持HMR的基于Webpack的開發(fā)環(huán)境等功能。它旨在幫助開發(fā)人員編寫同構(gòu)的React應(yīng)用程序,以便相同的呈現(xiàn)邏輯可用于客戶端和服務(wù)器端呈現(xiàn)。

Next.js基本上允許你編寫一個React應(yīng)用程序,SSR和代碼拆分之類的東西會為你處理。它支持兩種服務(wù)器端呈現(xiàn)模式:按需和靜態(tài)導(dǎo)出。按需呈現(xiàn)意味著每個請求,呈現(xiàn)一個唯一的頁面。此屬性非常適用于高度動態(tài)的Web應(yīng)用程序,其中內(nèi)容經(jīng)常更改,具有登錄狀態(tài)和類似用例。此模式需要運行Node.js服務(wù)器。另一方面,靜態(tài)導(dǎo)出會將所有頁面預(yù)先呈現(xiàn)為.html文件,并使用任何文件服務(wù)器為其提供服務(wù)。此模式不需要運行Node.js服務(wù)器,HTML可以在任何地方運行。

Nuxt.js

Nuxt.js最初由Chopin兄弟,Alexandre和SébastienChopin創(chuàng)建,并于2016年發(fā)布。2018年1月,它更新為生產(chǎn)就緒的1.0版本,并得到了一個活躍且得到良好支持的社區(qū)的支持。它是一個受Next.js啟發(fā)的高級框架,它構(gòu)建于Vue.js生態(tài)系統(tǒng)之上,簡化了通用或單頁Vue.js應(yīng)用程序的開發(fā)。

在后臺,Nuxt.js使用帶有vue-loader和babel-loader的webpack來捆綁,代碼分割和縮小代碼。使用Nuxt,js的一個好處是它提供了一個nuxt generate命令,它使用相同的代碼庫生成Vue應(yīng)用程序的完全靜態(tài)版本。除此之外,它還為客戶端和服務(wù)器端之間的開發(fā)提供了諸如異步數(shù)據(jù),中間件,布局等功能。

NestJS

NestJS由Kamil Mysliwiec創(chuàng)建,于2017年發(fā)布。它是一個輕松構(gòu)建高效,可靠和可擴(kuò)展的Node.js服務(wù)器端應(yīng)用程序的框架。它建立在TypeScript和JavaScript(ES6,ES7,ES8)的基礎(chǔ)之上,并且受Angular的啟發(fā),因為它們都使用允許可重用性的模塊/組件系統(tǒng)。

在后臺,NestJS使用Express,并且還與各種其他庫兼容,例如,F(xiàn)astify。對于它的大多數(shù)抽象,它使用類并利用類和TypeScript帶來的裝飾器和元數(shù)據(jù)反射的好處。它帶有保護(hù),管道和攔截器等概念,并內(nèi)置支持其他傳輸,如WebSockets和gRPC。

這些是從大量的javascript框架中挑選出來的。你當(dāng)然不必成為他們所有的專家。在開始使用框架之前,你可以檢查它是否有幾個問題,例如它解決的問題,更好地執(zhí)行相同操作的任何其他框架,是否符合項目要求,此框架適合哪種類型的項目等等,如果該框架對你有吸引力,可能會嘗試用一個框架構(gòu)建一個項目。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/103230.html

Failed to recv the data from server completely (SIZE:0/8, REASON:closed)