关闭

JavaScript开发人员更喜欢Deno的五大原因

时间: 2020-09-02阅读: 119标签: Deno

本文主要通过5个原来来阐述为什么JavaScript开发人员更喜欢Deno, JavaScript 开发人员为什么在使用 Deno 时能比 Node 获得更流畅、更现代化的体验。 

来自公众号:前端之巅,作者 :Dan Halperin
Nodejs 的创造人 Ryan Dahl 刚发布了一个新的运行时 Deno,旨在解决 Node 存在的许多缺陷。像大家一样,我一开始也以为这只是又一个 js 框架。但是深入了解过 Deno 的各项优点之后,我意识到了 Deno 正是 2020 年的今天,后端 Javascript 开发人员所需要的东西。在这篇文章中,我们就来看一下 JavaScript 开发人员为什么在使用 Deno 时能比 Node 获得更流畅、更现代化的体验。


现代化的 Javascript:ES 模块


 如果你也像我一样是一位 react 开发人员,你会注意到使用 NodeJS 导入软件包的语法是不一样的。这是因为 Node 面世于 2009 年,这些年来 Javascript 得到了大量更新和改进。 在 React(和 Deno)中,我们使用 import package from 'package'语法,而在 Node 中我们使用 const package = require("package") 语法。 Deno 的 ES 模块 import 有两个优势:

  1. 通过 import,你可以有选择地从包中加载所需的部件,从而节约了内存空间。
  2. 加载与 require 是 同步 的,而 import 则会 异步 加载模块,从而提高了性能。

如上图所示,我们正在从一个 URL 导入 moment 包,这也是 Deno 的另一个优势。


去中心化包

使用 Deno 时,你不用再依赖 npm 了。是的,不再需要 package.json。每个包都是从一个 URL 加载的。

在 NodeJS 中,要使用一个软件包,你必须先从 NPM 安装它:
npm i moment
等它安装完毕后,再将其包含在你的应用中:
const moment = require("moment")

另外,不管是谁要在本地运行你的 NodeJS 存储库,都必须从 NPM 安装所有依赖项。在 Deno 中,这个包是从一个 URL 导入的。所以要使用 moment 时,只需导入 https://deno.land/x/moment/moment.ts 即可。 

 

Deno 中软件包这块的另一大优势是,每个包安装完成后都缓存在硬盘驱动器上。也就是说软件包的安装过程只运行一次。要在任何地方再次导入依赖项时,并不需要重新下载。


TypeScript 原生支持,无需配置


在 NodeJS 中使用 TypeScript 需要很多准备工作。你必须安装 typescript,更新 package.json、tsconfig.json,并确保你的模块支持 @types。 在 Deno 中,你要做的就是将文件另存为.ts 而不是.js,TypeScript 编译器已经准备就绪了

顶级 await:在异步函数外使用 await


 在 Node 中,我们只能在一个异步函数中访问 await 关键字。 而在 Deno 中,你可以随时随地 await 任何事情,而无需将其包装在一个异步函数中。 几乎所有的 Javascript 应用都包含许多异步函数。这一改进让代码变得更加简洁明了。


访问Browser API(Window,Fetch)

要使用 Javascript 发出 HTTP 请求,我们可以使用 Fetch API。

在 NodeJS 中我们没有访问 Browser API 的权限,因此我们不能直接调用一个 fetch 函数。我们必须先安装这个包:
npm i node-fetch
然后导入它:
const fetch = require("node-fetch")

这样我们才能调用一个 fetch。Deno 原生支持访问 window 对象,于是你可以调用 fetch("https://something.com") 以及 Browser API 中的其他任意内容,而无需安装任何库。 有了这个顶级 await 的优势,Deno 的代码就会比 Node 简单很多:

 

2020 年代编写 Javascript 代码的现代化方式


还不止这些

Deno 还有其他许多优点,例如默认情况下更安全、可以执行 Wasm 二进制文件、拥有许多内置库,等等。 本文提到的这些要点都是相互联系的,它们共同打造出了一个更现代化的 JavaScript 后端运行时。作为一名 React 开发人员,我站 Deno 这边。现在我可以使用 import 语法,在需要的任何位置编写 await,无需任何配置直接使用 TypeScript,甚至可以无需安装包就调用 fetch。一切都非常简单。 Deno 最终会取代 Node 吗?也许会吧。这可能需要几年时间。NodeJS 生态系统非常庞大,Deno 可能需要一些时间才能迎头赶上。很多 Javascript 开发人员最近都考虑在新项目中使用 Deno,因此如果你近期想要开始做一个新项目,Deno 绝对值得你研究一下。了解更多信息,请访问: https://deno.land/


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/10180

Deno会在短期内取代Node吗?

作为Node之父,Ryan Dahl认为Node自从他把项目移交出去后,Node的走向越来越背离了他的初衷,并且存在着很多无法解决的问题,所以他决心重新开发一个新的项目去解决这些问题

什么是Deno?跟Node.js有何区别?

Node.js的作者Ryan Dahl,过去一年半的时间都在打造一个新的JavaScript运行环境Deno来解决Node的一些内在问题。不过不要误会,得益于JavaScript庞大的社区生态和使用范围

初尝Deno,这是我的感受

我发现自己最近的工作效率不是很高,于是快速浏览了一下 GitHub 趋势页面,看看有没有什么比较酷的新项目。其中有个项目排名比较靠前,即 Deno:

Deno 正式发布,彻底弄明白和 node 的区别

Deno 已经正式发布了!我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了。心中的不仅感慨前端是真的会造轮子

Deno 意味着什么?

如果你一直关注 Web 开发领域,那么最近可能已经听到了很多关于 Deno 的信息——一种新的 JavaScript 运行时,它可能也会被认为是 Node.js 的继承者。但是这意味着什么,我们需要“下一个 Node.js” 吗?

Node之父重构的Deno终于发布了,它终究会取代Node吗?

Node之父是谁?没错!就是这个叫Ryan Dahl的男人在2009年创造了Node。你看,其实也不是说大神就都没头发,这位大神毛发不是挺旺盛的嘛!

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!