虽然“库”和“框架”这两个术语听起来很相似,但它们的工作方式不同。
许多人交替使用这两个词,却不知道其背后的深刻含义。
在我们深入研究库和框架之间的主要区别之前,让我们先看看它们都服务的共同目的。
库和框架都是一些开发人员为了有效解决复杂问题而编写的代码。
它们都为您提供了编写 DRY(不要重复)代码的绝佳方法。
它们的目的是提高代码的可重用性,以便您可以在各个项目中再次使用相同的代码或函数。
什么是库?库是开发人员之前编写的一组代码,您可以在构建项目时调用它们。
在库中,您可以导入或调用项目所需的特定方法。
简单来说,一堆打包在一起、可以重复使用的代码就称为库。
可重用性是使用库的主要原因之一。
让我们通过一个例子来更清楚地理解这一点。
把你想象成一个需要建造一张桌子的木匠。
现在,您可以不借助工具来构建表,但这是一个耗时且漫长的过程。
然而,如果您选择正确的工具,您将能够更快、更轻松地构建表格。
将这里的工具视为一个库。
您可以在没有它们的情况下编写程序。
但这将是一个漫长的过程,并且您的程序很可能会出现错误,而如果您使用库,那么您使用该程序会更容易。
例如,如果您使用内置的 Javascript fetch() 方法从 API 获取数据,并且您觉得这不是理想的解决方案。
然后您可以使用 Axios Library 来实现相同的目的,使您的工作更加轻松。
axios.post('/login', { firstName: 'Monica', lastName: 'robinson '}).then((response) => { console.log(response);}, (error) => { console.log(error);});库的一些常见示例是:ReactReact 是一个用于构建用户界面的 Javascript 库。
ReduxRedux 是一个用于管理应用程序状态的开源 Javascript 库。
它最常与 React 一起使用Three.js它是另一个超酷的 Javascript 库,用于创建和显示 3D 计算机图形。
LodashLodash 是一个 Javascript 库,为常见编程任务提供实用函数。
它更像是 Node.js 中的生产力工具包jQueryjQuery 是一个 Javascript 库,可以执行事件处理和 HTML 文档操作等操作。
什么是框架?框架是一种支撑结构,可以塑造代码。
在框架中,您必须用代码相应地填充结构。
您必须遵循特定框架的特定结构,并且它通常比库更具限制性。
这里要记住的一件事是框架有时会变得非常大,因此它们也可能使用该库。
但框架不一定要使用库。
让我们回到我们的木匠和桌子示例,以更好地理解该框架。
在这里,如果您想构建一张桌子,那么您需要一个模型或骨架来展示桌子的外观,例如桌子有四个腿和一个顶板。
现在,这是表的核心结构,您必须相应地构建表。
与此类似,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)和特定的参数。
您不能随意命名这些方法,并且必须按照文档命名这些方法。
框架的一些常见示例是:AngularAngular 是一个用于 Web 和移动开发的 Javascript 框架。
DjangoDjango 是一个用 Python 编写的功能齐全的服务器端 Web 框架。
ExpressExpress 是一个最小且灵活的 Node.js Web 应用程序框架,为 Web 和移动应用程序提供了一组强大的功能。
RailsRails 是一个用 Ruby 编程语言编写的 Web 应用程序开发框架。
SpringSpring framework 是一个开源框架,用于使用 Java 作为编程语言构建 Web 应用程序。
库与框架之间的主要区别库和框架之间的主要区别在于所谓的控制反转。
让我们更详细地了解这种控制反转。
当您导入库时,您必须调用您选择的特定方法或函数,并且由您决定何时何地调用库。
在这里,你负责流量。
另一方面,框架本身会调用您的代码并为您提供一些空间来写下详细信息。
因此,在使用框架时,您的框架负责流程。
在 Library 中,您的代码将调用 Library,而在 framework 中,您的代码将由 framework 调用。
结论这里有一件简单的事情要记住:框架通常具有更多的限制性,并且通常有更多的规则集。
然而,库不受许多规则的约束。
我希望您对库和框架之间的区别有更广泛的了解。