库和框架之间有什么区别?
虽然“库”和“框架”这两个术语听起来很相似,但它们的工作方式却不同。
许多人交替使用这两个词,却不知道其背后的深刻含义。
在深入研究库和框架之间的主要区别之前,让我们先看看它们所服务的共同目的。
库和框架都是一些开发人员为了有效地解决复杂问题而编写的代码。
它们都为您提供了编写 DRY(不要重复自己)代码的绝佳方法。
它们的目的是提高代码的可重用性,以便您可以在各种项目中再次使用相同的代码或功能。
什么是图书馆?
库是开发人员先前编写的一组代码,您可以在构建项目时调用它。
在库中,您可以导入或调用项目所需的特定方法。
简单来说,一堆打包在一起的、可以重复使用的代码被称为库。
可重用性是使用库的主要原因之一。
让我们借助一个例子来更清楚地理解这一点。
想象一下你是一位需要建造桌子的木匠。
现在,您无需借助工具就可以构建表格,但这很耗时,而且是一个漫长的过程。
然而,如果您选择正确的工具,您将能够更快地构建表格,而且不会遇到任何困难。
把这里的工具想象成一个库。你可以在没有它们的情况下编写程序。
但这将是一个漫长的过程,并且您的程序很可能会出现错误,而如果您使用库,您将更容易使用该程序。
例如,如果您使用内置的 JavaScript fetch() 方法从 API 获取数据,并且您觉得这不是理想的解决方案。
然后,您可以使用Axios库来实现相同的目的,以使您的工作更轻松。
axios.post('/login', {
firstName: 'Monica',
lastName: 'robinson '
})
.then((response) => {
console.log(response);
}, (error) => {
console.log(error);
});
图书馆的一些常见示例是:
React 是一个用于构建用户界面的 JavaScript 库。
Redux
Redux 是一个用于管理应用程序状态的开源 JavaScript 库。
它最常用于 React
Three.js
这是另一个用于创建和显示 3D 计算机图形的超酷 JavaScript 库。
Lodash
Lodash 是一个 JavaScript 库,为常见的编程任务提供实用函数。
它更像是 node.js 中的生产力套件
jQuery
jQuery 是一个 JavaScript 库,可以执行事件处理和 HTML 文档操作等操作。
什么是框架?
框架是一种支撑结构,可以塑造您的代码。
在框架中,您必须使用代码相应地填充结构。
特定框架具有特定的结构,您必须遵循该结构,并且它通常比库更具限制性。
这里要记住的一件事是,框架有时会变得相当大,因此它们也可能使用库。
但Framework并不一定要使用Library。
让我们回到木匠和桌子的例子,以便更好地理解框架。
在这里,如果您想建造一张桌子,那么您需要一个桌子外观的模型或骨架,就像桌子有四条腿和一块顶板一样。
现在,这是表的核心结构,您必须按照此结构来构建表。
与此类似,Framework也提供了结构,你必须相应地编写代码。
让我们以Express为例,了解框架的限制性质。
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('welcome to dev.to!! ')
})
app.post('/', function (req, res) {
res.send('POST request to the dev.to homepage')
})
这里 express 的设计方式是它只寻找特定的方法(get/post)和特定的参数。
您不能随意命名方法,并且必须按照文档命名方法。
框架的一些常见示例是:
Angular 是一个用于 Web 和移动开发的 JavaScript 框架。
Django
Django 是一个用 Python 编写的功能齐全的服务器端 Web 框架
。
表达
Express 是一个简约而灵活的 Node.js Web 应用程序框架,它为 Web 和移动应用程序提供了一组强大的功能。
轨道
Rails 是一个用 Ruby 编程语言编写的 Web 应用程序开发框架。
春天
Spring 框架是一个使用 Java 作为编程语言构建 Web 应用程序的开源框架。
库与框架之间的主要区别
库和框架之间的主要关键区别是所谓的控制反转。
让我们更详细地了解这种控制反转。
当您导入一个库时,您必须调用您选择的特定方法或函数,并且何时何地调用该库由您决定。
在这里,您负责流程。
另一方面,框架本身会调用您的代码并为您提供一些空间来写下细节。
因此,在使用框架时,您的框架负责流程。
在库中,您的代码将调用库,而在框架中,您的代码将被框架调用。
结论
我知道这有点令人困惑,但请继续听。最后,我将用最后一个关键点来结束我的演讲。
这里有一件简单的事情需要记住:框架通常更具限制性,并且通常具有更多的规则。
然而,图书馆不受许多规则的约束。
我希望您能更广泛地了解库和框架之间的区别。
如果您发现我的作品有趣且值得一读,您可以在Twitter和LinkedIn上欣赏我。
欢迎在评论中提出各种反馈。
文章来源:https://dev.to/rohitrana/what-is-the-difference- Between-library-vs-framework-174n