我刚刚开始进行Web开发,到目前为止我知道:
HTML - 网站CSS的布局 - 使它看起来很漂亮的JavaScript - 功能
那么jQuery,AngularJS和Node.js是什么?
在快速搜索之后,我发现jQuery是一个“JavaScript库”,AngularJS是“基于JavaScript的开源前端Web应用程序框架”,而Node.js是“JavaScript运行时环境” .
它们似乎都与JavaScript有关,它们是新语言吗? '框架/库'是什么意思?
一个简单的答案将不胜感激 . (我刚刚开始编程,但我熟悉编程) .
6 回答
jQuery is a library (客户端)
它使得HTML文档遍历和操作,事件处理,动画和Ajax之类的东西变得更加简单,易于使用的API适用于多种浏览器 .
AngularJS is an MVC framework (客户端)
它允许您使用HTML作为模板语言,并允许您扩展HTML的语法,以清晰简洁地表达您的应用程序的组件 . AngularJS的数据绑定和依赖注入消除了您必须编写的大部分代码 . 这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴 . AngularJS最初是作为Google的一个项目启动的,但现在它是一个开源框架 .
Node.js is a platform and runtime environment (服务器端)
Node.js还提供了各种JavaScript模块的丰富库,它在很大程度上简化了使用Node.js的Web应用程序的开发 . Node.js使用事件驱动的非阻塞I / O模型,使其轻量级和高效,非常适合在分布式设备上运行的数据密集型实时应用程序 .
Library vs. Framework
Library
编写Web应用程序时有用的函数集合 . 您的代码负责,并在它认为合适时调用库 . 例如,jQuery .
Framework
Web应用程序的特定实现,其中您的代码填写详细信息 . 该框架负责,当需要特定于应用程序的东西时,它会调用您的代码 . 例如,AngularJS,Durandal,Ember.js等
简单来说,
jQuery - 是一组用于操作HTML和CSS的JavaScript函数
AngularJS - 是一个JavaScript框架,可以帮助您组织HTML和CSS
Node.js-是一个JavaScript运行时...有点像服务器或本地机器上的浏览器,但没有所有的浏览器渲染引擎和附加功能......它只是一个运行时
用简单的词表示库与框架的主要区别:
Framework 强加某种架构并期望应用程序遵循其期望
Library 是低级构建块的集合,通常提供旨在解决特定问题的粒度函数(即jquery.post()函数)*
jQuery
jQuery是一个为你做很多事情的库 . 它包含许多方便,常用的功能,因此您不必自己编写此代码 . 这是在石器时代成为木匠,或拥有一系列电动工具之间的区别 .
AngularJS
AngularJS是一个用于为交互式网站和Web应用程序构建 front-end, graphical user interfaces (GUIs) 的框架 . 当与Node.js一起使用时,它可以提供强大的组合
Node.js
Node是用于构建 back-end web services 的框架,例如API REST endpoints ,它们在后台为您提取数据 . 您可以使用AngularJS将按钮和GUI元素连接到这些 endpoints ,以构建丰富的,数据驱动的Web应用程序和Web报告 . 作为RESTful,这些服务等待,直到前端向他们发送请求(用户单击按钮)并执行数据库查询或读取文件然后吐出一些数据,然后Web应用程序可以显示给用户 .
Frameworks in general
早期木匠类比中的框架就像是与专业建筑师团队签约,为您完成工作 . 您足够详细地描述了这项工作,他们接管并实际完成工作 . 因此,您的任务将减少为以正确的语言提出工作规范,供构建者团队理解,而不是自己完成工作 .
AngularJS就像室内设计团队和电气一样,Node.js就是其他一切 . 过于简单?也许 . 但是你要求一个简单的解释 .
因此,您可以将AngularJS和Node.js视为对立面,但它们可以在同一个应用程序或项目中一起使用 . 它们用于不同的目的,但它们都使用JavaScript(和jQuery在某种程度上)来完成它 .
Framework :这描述了如何呈现代码的给定结构 . 非常像代码模板,一些帮助器,构造函数等,以解决/简化特定问题或将您的架构带入"order" . 示例,Backbone.js,RequireJS,Socket.IO . 框架封装了常见的应用程序功能,允许开发人员专注于应用程序独有的部分 .
Library :是一个完整的工具包,可以高度抽象不同的层,如浏览器,DOM模型等 . 此外,它提供了许多工具和简洁的工具,通常可以简化您的编码体验 . 示例是jQuery和MooTools .
请查看here以获取更多信息 .
这就是他们日复一日受欢迎的原因:
jQuery
Jquery代码相对较短 . 有时只有五行jQuery代码相当于25行常规JavaScript代码(例如使用AJAX加载数据文件) . 这意味着更少的代码和更小的文件 .
大型库:与其他JavaScript库相比,jQuery使您能够执行大量功能 .
Super Easy使用Ajax:jQuery使您可以轻松地开发Ajax模板,Ajax实现了更流畅的界面,可以在页面上执行操作,而无需重新加载整个页面 .
AngularJS
双向数据绑定:虽然您可以在jQuery中编写一个简单的双向数据绑定事件,但JavaScript MVC库提供了一种更加声明性(使用HTML)的方式将模型连接到您的视图 .
伟大的SPA(single-page applications):像AngularJS,Aurelia,Ember.js和Meteor这样的库提供了所有的管道,而不是在jQuery中编写所有的管道
Node.js
速度很快:除了快速执行JavaScript之外,Node.js背后的真正魔力就是事件循环 . 事件循环是一个单独的线程,它以异步方式执行所有I / O操作 . 传统上,I / O操作通过产生并行线程来执行工作,同步(阻塞)或异步运行 .
实时轻松:如果Node.js在许多并发连接方面表现优异,那么它在多用户,实时Web应用程序(如聊天和游戏)方面表现优异是有道理的 . Node.js的事件循环负责多用户需求 .
您可以使用HTML,CSS和JavaScript来创建交互式网站 .
jQuery是一个用JavaScript编写的工具 .
AngularJS是一个用JavaScript编写的工具 .
React是一个用JavaScript编写的工具 .
这些工具可帮助您根据自己的规则管理HTML,CSS和JavaScript之间的交互 . 一旦工具变得非常大,它可能会采用“库”或“框架”之类的名称,具体取决于其特征 .
我们经常在Web浏览器中运行JavaScript . 但是几年前,这个名为Node.js的东西让我们可以在浏览器之外轻松运行JavaScript . 我喜欢将其视为“在浏览器之外运行JavaScript的程序”(这意味着......没有HTML或CSS可供查看) .