日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
DenoVSNode:Javascript開(kāi)發(fā)人員更喜歡前者的五大原因

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

為了解決Node的許多缺點(diǎn),NodeJS的開(kāi)發(fā)者 Ryan Dahl,發(fā)布了一個(gè)新的運(yùn)行時(shí)刻。

人們最初的反應(yīng)可能是:“太棒了,另一個(gè)Javascript框架?正是我需要的?!惫P者也有過(guò)同樣的反應(yīng)。在了解其優(yōu)點(diǎn)之后,筆者更清晰地明白了為什么說(shuō)Deno正是年后端Javascript開(kāi)發(fā)人員所需要的。

相較Node而言,一起看看JavaScript開(kāi)發(fā)人員使用Deno體驗(yàn)更流暢和更現(xiàn)代的五大原因。

1.Modern Javascript —ES 模塊

如果你也是個(gè)React開(kāi)發(fā)人員,那么應(yīng)該已經(jīng)注意到了,在使用NodeJS時(shí)導(dǎo)入包的語(yǔ)法是不同的。這是因?yàn)镹ode是在2009年開(kāi)發(fā)的,從那時(shí)起,針對(duì)Javascript進(jìn)行了很多更新和改進(jìn)。

在React(和Deno)中,使用現(xiàn)代的import package from 'package'語(yǔ)句,而在Node中,使用const package = require("package")語(yǔ)句。

ES模塊導(dǎo)入的優(yōu)越性源于兩個(gè)方面:

  • 通過(guò)import,可以有選擇地僅從包中加載所需的片段,這樣可以節(jié)省內(nèi)存。
  • 加載與require同步,而import異步加載模塊,這提高了性能。

2. 頂級(jí)await —在異步函數(shù)之外使用 await

在Node中,await關(guān)鍵字只能在異步函數(shù)中訪問(wèn)。但是在Deno中,不論在何地,面對(duì)什么對(duì)象,都可以使用await,而無(wú)需將其打包為異步函數(shù)。

幾乎所有的Javascript應(yīng)用程序都包含許多異步函數(shù)。這次升級(jí)使代碼更加干凈和簡(jiǎn)單。

3. 分散式包

圖源:unsplash

有了Deno,就不必依賴于NPM。我們不再需要package.json了,每個(gè)包都是從URL上加載的。

在NodeJS中,要使用包,就必須先從NPM安裝:

 
 
 
 
  1. npm i moment

等待安裝,然后將其包含在應(yīng)用程序中:

 
 
 
 
  1. const moment = require("moment")

此外,不論何時(shí),如果有人想在本地運(yùn)行NodeJS 庫(kù),就必須得從NPM安裝所有依賴項(xiàng)。在Deno中,包是從URL中導(dǎo)入的,所以如果想要使用moment,只需導(dǎo)入網(wǎng)址:

https://deno.land/x/moment/moment.ts.

在包的方面,Deno另一個(gè)巨大的優(yōu)勢(shì),在于每個(gè)包在安裝后都緩存在硬盤上,這意味著一個(gè)包的安裝只發(fā)生一次。如果要在任何位置再次導(dǎo)入依賴項(xiàng),則無(wú)需再次下載。

4. TypeScript在本機(jī)工作,無(wú)需配置。

讓TypeScript與NodeJS一起工作需要多個(gè)步驟。讀者必須安裝typescript,升級(jí)package.json和tsconfig.json,并確保模塊支持@types。

在Deno中,所有需要做的就是將文件后綴保存為.ts而不是.js,TypeScript編譯器已經(jīng)內(nèi)置。

5. 訪問(wèn)瀏覽器API (Window, Fetch)

要在Javascript中發(fā)出HTTP請(qǐng)求,可以使用Fetch API。在NodeJS中,沒(méi)有訪問(wèn)瀏覽器API的權(quán)限,因此不能本地調(diào)用fetch函數(shù)。必須首先安裝包:

 
 
 
 
  1. npm i node-fetch

然后導(dǎo)入包:

 
 
 
 
  1. const fetch =require("node-fetch")

只有這樣才能調(diào)用fetch函數(shù)。

而本地Deno就有權(quán)訪問(wèn)對(duì)象,這意味著讀者可以無(wú)需安裝任何庫(kù),直接調(diào)用fetch("https://something.com"),以及瀏覽器API中的任何內(nèi)容。當(dāng)與頂層await優(yōu)勢(shì)結(jié)合,你可以看出,Deno代碼比Node代碼簡(jiǎn)潔了多少:

2020年編寫(xiě)Javascript代碼的方式

不止于此,Deno還有很多其他的優(yōu)點(diǎn),比如在默認(rèn)情況下更安全,可以執(zhí)行Wasm二進(jìn)制文件,有許多內(nèi)置庫(kù),等等。

圖源:unsplash

文中所提到的要點(diǎn)都是互相關(guān)聯(lián)的,共同組成了一個(gè)更為現(xiàn)代的2020后端JavaScript運(yùn)行時(shí)刻。作為一個(gè)React開(kāi)發(fā)人員,筆者更偏愛(ài)Deno。

現(xiàn)在,筆者可以使用import語(yǔ)句,不論何處都可以使用 await,無(wú)需任何配置就可以使用TypeScript,甚至無(wú)需安裝包就可以調(diào)用fetch。一切都很簡(jiǎn)單。

另一個(gè)問(wèn)題是,Deno最終會(huì)取代Node嗎?或許吧,但可能需要幾年時(shí)間。NodeJS生態(tài)系統(tǒng)很龐大,Deno需要時(shí)間來(lái)趕上。但趨勢(shì)就是Deno正變得更受歡迎,如果你正要開(kāi)始一個(gè)新項(xiàng)目,不妨試試它。


網(wǎng)站名稱:DenoVSNode:Javascript開(kāi)發(fā)人員更喜歡前者的五大原因
轉(zhuǎn)載注明:http://m.5511xx.com/article/copghjh.html