【问题标题】:What is Javascript's version of .NET Standard Class Library?什么是 .NET 标准类库的 Javascript 版本?
【发布时间】:2020-04-30 06:36:21
【问题描述】:

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

【问题讨论】:

  • 为什么问题有Node标签? Vue 主要是客户端,您将无法在浏览器中使用 Node API。 Vue 不提倡 OOP,所以它们不一定是 classes。对于 HTTP,有原生的 Fetch API,Axios 是一种流行的替代方案。至于业务逻辑,这是一个状态管理的案例,查看Vuex。

标签: javascript node.js .net vue.js


【解决方案1】:

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

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

因此,如果您使用 node.js 进行编程,那么您的“标准”就是 node.js 内置的库并与它一起记录。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多