jQuery是一个库(客户端)
jQuery是一个快速、小巧、轻量级、“写得更少,做得更多”和功能丰富的JavaScript库。
它通过易于使用的API使HTML文档遍历和操作、事件处理、动画和Ajax等事项变得更加简单,并可在众多浏览器上运行。
AngularJS是一个MVC框架(客户端)
AngularJS是一个客户端JavaScript MVC框架,用于开发动态Web应用程序。
它让您将HTML作为模板语言,并扩展HTML的语法以清晰而简洁地表达应用程序的组件。AngularJS的数据绑定和依赖注入消除了大部分您必须编写的代码。所有这些都发生在浏览器内部,使其成为任何服务器技术的理想合作伙伴。AngularJS最初是在Google中启动的一个项目,但现在它是一个开源框架。
Node.js是一个平台和运行环境(服务器端)
Node.js是一个开源的、跨平台的运行时环境,用于开发基于Google Chrome的JavaScript引擎(V8 Engine)的服务器端和网络应用程序。Node.js应用程序使用JavaScript编写,并可以在OS X、Microsoft Windows和Linux上在Node.js运行时中运行。库
一组编写Web应用程序时有用的函数。您的代码负责,并在适当时调用库。例如,jQuery。
框架
Web应用程序的特定实现,其中您的代码填充细节。框架负责,并在需要特定于应用程序的内容时调用您的代码。例如,AngularJS,Durandal,Ember.js等。
简而言之:
库和框架的主要区别:
框架强制规定特定的体系结构,并期望应用程序遵循其预期
库是一组低级构建块,通常提供针对解决特定问题的粒度函数(即jquery.post()函数)*
jQuery
jQuery是一个库,可以为您完成很多事情。它包含许多方便的常用函数,因此您不必自己编写这些代码。这就像在石器时代当木匠和有一系列电动工具之间的区别。
AngularJS
AngularJS是一个框架,用于构建交互式网站和Web应用程序的前端图形用户界面(GUI)。如果与Node.js一起使用,则会产生强大的组合。
Node.js
Node是一个框架,用于构建后端Web服务,例如API REST端点,从背景中拉取数据。您可以使用AngularJS将按钮和GUI元素连接到这些端点,以构建丰富的、数据驱动的Web应用程序和Web报告。作为RESTful,这些服务等待前端发送请求(用户单击按钮),然后执行数据库查询或读取文件并返回一些数据,Web应用程序可以显示给用户。
总体框架
早期的木匠比喻中,框架就像聘请专业建筑师团队为您完成工作。您以足够详细的方式描述工作,他们接管并实际完成。因此,您的任务就是用正确的语言描述工作规格,让建筑师团队理解,而不是自己做工作。
AngularJS就像室内设计团队以及电气工程,而Node.js则是其他所有东西。简化了吗?也许。但你要求一个简单的解释。
因此,您可以认为AngularJS和Node.js是相反的,但它们可以在同一应用程序或项目中一起使用。它们填补不同的目的,但它们都使用JavaScript(在某种程度上使用jQuery)来完成。
框架(Framework):它描述了您应如何呈现代码的特定结构。就像一个代码模板,配合一些助手、构造函数等来解决/简化特定问题或使您的架构有条不紊。例如,Backbone.js,RequireJS,Socket.IO。框架封装了通用应用程序功能,允许开发人员专注于其应用程序中独特的部分。
库(Library):是完整的工具包,高度抽象了不同的层,如浏览器、DOM模型等。正如一个好的工具包一样,它提供了很多工具和美妙的东西供您使用,通常简化了您的编码体验。例如jQuery和MooTools。
在这里查看更多信息。
以下是它们日益普及的原因:
jQuery
AngularJS
Node.js