首页 > 解决方案 > 什么是 .NET 标准类库的 Javascript 版本?

问题描述

我正在学习来自 .NET 背景的 Vue.js。如何编写为我实现业务逻辑的类(从 API 获取信息并返回格式化值以供前端使用),我可以简单地导入并保持我的 Vue 项目干净?

标签: javascriptnode.js.netvue.js

解决方案


什么是 .NET 标准类库的 Javascript 版本?

Javascript 语言本身没有大多数人所说的成熟的“标准”库。使用 Javascript 的两个最大环境是浏览器和 node.js,每个环境都有自己的库,可以在语言之上添加功能。浏览器中添加的大多数接口都是通过 W3C “标准化”的,以使所有浏览器都可以正常工作。我不知道 node.js 库的任何标准工作。您可以看到它将如何以这种方式发展,因为浏览器故意限制了它可以做什么(出于安全原因),因此它不包含对文件系统、子进程、TCP 堆栈、创建服务器的丰富访问,等等......然后,出现了 node.js,它的目标是能够做所有这些事情。

所以,如果你在 node.js 中编程,那么你的“标准”就是 node.js 内置的库并用它记录。

如果您从外部来源获取 http 请求,具有讽刺意味的是,node.js 对此的内置支持并不是很好,可能是因为 NPM 中有很多非常好的开源 3rd 方库(我认为是大多数人使用的)。您可以使用内置的http.request()并且它可以工作,但它比大多数人想要的级别低,并且在身份验证和处理响应以及其他类似的事情方面功能不是很丰富。

多年来,request()NPM 上的库几乎是您所能获得的标准的 3rd 方选择,并且是在线教程中经常使用的,并且被许多其他包所依赖。但是,由于各种原因,它已进入维护模式并在新项目中弃用,还有许多其他不错的选择,例如got()axios()node-fetch()superagent()您可以在此处查看许多选项的列表。我个人喜欢got()。当你只需要简单的东西时,它看起来很简单,它是基于承诺的,并且可以在需要时做更复杂的事情。许多其他选择也很有效。

随着 NPM 生态系统公开共享 node.js 模块的巨大成功,一段时间后,许多 node.js 程序员开始将 NPM 视为他们可用的库。显然,您需要从 NPM 中了解一些您所依赖的模块背后的内容(有多少其他开发人员在使用它,它的维护频率如何,它的文档是否合理等等......)。但是,如果它是一个广泛使用的模块,有很多项目使用并依赖它,并且它似乎正在定期更新,那么最糟糕的事情是你必须在未来某个时候创建​​一个分支来修复或添加一些东西你想要的没有得到你想要的关注。你总是有源头,所以你永远不会那样高高在上。

如何编写为我实现业务逻辑的类(从 API 获取信息并返回格式化值以供前端使用),我可以简单地导入并保持我的 Vue 项目干净?

你在这里问什么并不完全清楚。是的,您可以干净地编写实现业务逻辑的类,这些类提供数据或格式化文本以供前端使用。但是,这个答案与“标准”库无关。您可以使用非标准库来完成所有这些工作。您只需将您的类及其实现放入一个模块并从模块中导出该类,以便您可以在项目的任何其他模块中使用它。类实现细节将隐藏在其模块中。


推荐阅读