389

我只知道一个 js 库,那就是jQuery
但是我在小组中的其他编码人员正在将AngularJS更改为他们在新项目中的默认库。

我对此一无所知。它与 jQuery 有何不同?
我已经为 jQuery 中的类似任务完​​成了一组函数。我还能在 AngularJS 中使用 jQuery 的东西吗?

4

6 回答 6

414
  1. Angular 1 是一个框架,而 Angular 2 是一个平台。(参考

对于开发人员,Angular2 提供了一些除了在屏幕上显示数据之外的功能。例如,使用 angular2 cli 工具可以帮助您“预编译”您的代码并生成必要的 javascript 代码(tree-shaking)以将下载大小缩小到 35Kish。

  1. Angular2 模拟了 Shadow DOM。(参考

这为服务器渲染打开了一扇门,可以解决 SEO 问题并使用在浏览器上不起作用的 Nativescript 等。

  • 官方文档网站

  • ng-conf 2016 的第一天主题演讲

  • 资源链接 原文: 基本上,jQuery 是您操纵和控制 DOM 元素的绝佳工具。如果您只关注 DOM 元素而没有数据 CRUD,例如构建网站而不是 Web 应用程序,那么 jQuery 是顶级工具之一。(您也可以为此目的使用 AngularJS。)

AngularJS 是一个框架。它具有以下特点

  1. 双向数据绑定
  2. MVW 模式(MVC 风格)
  3. 模板
  4. 自定义指令(可重用组件、自定义标记)
  5. REST 友好
  6. 深度链接(为任何动态页面设置链接)
  7. 表单验证
  8. 服务器通信
  9. 本土化
  10. 依赖注入
  11. 完整的测试环境(单元,e2e)

检查这个演示文稿和这个很棒的介绍

不要忘记阅读官方开发者指南

或者从这些很棒的视频教程中学习

如果您想观看更多教程视频,请查看这篇文章,收集 60 多个最佳 AngularJS 教程

您可以毫无问题地将 jQuery 与 AngularJS 一起使用。

事实上,AngularJS 在其中使用了 jQuery lite,这是一个很棒的工具。

来自常见问题

Angular 是否使用 jQuery 库?

是的,如果在引导应用程序时,Angular 存在于您的应用程序中,则 Angular 可以使用 jQuery。如果 jQuery 不在您的脚本路径中,Angular 将回退到它自己的 jQuery 子集实现,我们称之为 jQLite。

但是,不要尝试使用 jQuery 来修改 AngularJS 控制器中的 DOM,而是在你的指令中进行。

更新:

Angular2 已发布。是初学者的资源清单

于 2012-10-31T05:33:17.597 回答
41

我想从开发人员的角度添加一些关于AngularJSjQuery的区别的内容。

在 AngularJS 中,你必须对你想要完成的事情有一个非常结构化的视图和方法。完成任务几乎没有遵循线性方式,而是各种对象之间的交换处理请求和动作,因此这是必要的,因为 Angular 是基于MVC 的框架。它还需要最终应用程序的至少通用蓝图,因为编码很大程度上取决于您希望如何完成交互。

jQuery 就像一首免费的诗歌,您可以写下几行字,并保持一些适合您完成任务的关系和动力。

虽然,在 Angular JS 中,你应该遵循一些规则,同时保持适当的动力和关系,也许它更像是古典斯宾塞十四行诗(一位著名的古典诗人),其诗歌是结构性的,并且与许多规则相关联。

与 AngularJS 相比,jQuery 更像是代码和函数的集合(如前所述,这非常适合 DOM 操作和快速实现效果),而 AngularJS 是一个真正的框架,它使开发人员能够构建企业 Web -在组织良好的路由和管理中具有大量数据绑定和交换的应用程序。

此外,AngularJS 不依赖 jQuery来完成其任务。它有两个非常出色的特性,在任何意义上都没有在 jQuery 中找到:

1- Angular JS 教你如何编写代码并完成一个目标,而不仅仅是通过任何方式完成一个目标。值得一提的是,AngularJS 充分利用了 Javascript 的核心和核心,并为您在应用程序中融入 DI(依赖注入)等技术铺平了道路。要使用 angularJS,您应该(或必须)学习更多使用 Javascript 进行编码的高级技术。

2- Angular JS 完全独立于处理指令和构建您的应用程序;然后您可能会简单地声称 jQuery 可以做同样的事情(独立性),但实际上,AngularJS,正如在上面几行中多次提到的那样,以最优秀的基于 MVC 的结构方式具有独立性。

最后一点是,没有名字的战争,因为有偏见或主观是非常令人不安的。jQuery 的巨大和伟大已经得到了证明,但是它们的使用和限制(任何框架或软件)是讨论和类似辩论的关注点。

更新:

使用 AngularJS 是决定性的,因为它的实现成本很高,但它为应用程序的未来扩展、转换和维护奠定了坚实的基础。AngularJS 适用于 Web 的新世界。它的目标是构建具有最少资源消耗(仅从服务器加载必要资源)、快速响应时间以及高度可维护性和可扩展性围绕结构化系统的应用程序。

于 2014-07-14T05:46:02.273 回答
28

AngularJS: AngularJS 用于开发繁重的 Web 应用程序。如果在引导应用程序时,AngularJS 存在于 Web 应用程序中,则 AngularJS 可以使用 jQuery。如果它不存在于脚本路径中,那么 AngularJS 会退回到它自己的 jQuery 子集的实现。

JQuery: jQuery 是一个小型、快速且功能丰富的 JavaScript 库。它使 HTML 文档遍历和操作、事件处理、动画和 Ajax 等事情变得更加简单。jQuery 简化了 JavaScript 中的许多复杂事物,例如 AJAX 调用和 DOM 操作。

在此处阅读更多详细信息:angularjs-vs-jquery

于 2014-12-01T07:38:56.733 回答
21

我认为是一个很好的图表,简而言之描述了差异。快速浏览它会显示大部分差异。

在此处输入图像描述

我想补充的一件事是,AngularJS可以遵循MVVM设计模式,而jQuery不遵循任何标准的面向对象模式。

于 2016-06-29T20:23:21.090 回答
12

他们在不同的层次上工作。

从初学者的角度来看,查看差异的最简单方法是jQuery本质上是 JavaScript 的抽象,所以我们为 JavaScript 设计页面的方式几乎就是我们为jQuery设计的方式。从 DOM 开始,然后在其之上构建一个行为层。Angular.Js并非如此。这个过程实际上是从头开始的,所以最终的结果就是想要的视图。

使用jQuery,您可以进行 dom 操作,使用Angular.Js ,您可以创建整个 Web 应用程序。


jQuery的构建是为了抽象出各种浏览器特性,并与 DOM 一起工作,而无需添加 IE6 检查等。随着时间的推移,它开发了一个很好的、健壮的 API,它允许我们做很多事情,但它的核心是处理 DOM、查找元素、更改 UI 等等。将其视为直接使用螺母和螺栓。

Angular.Js构建为jQuery之上的一个层,用于将MVC概念添加到前端工程中。Angular.Js不是为您提供使用 DOM 的 API,而是为您提供数据绑定、模板、自定义组件(类似于jQuery UI,但声明式而不是通过 JS 触发)等等。将其视为更高级别的工作,您可以将组件连接在一起,而不是直接在螺母和螺栓级别。

此外Angular.Js为您提供适用于各种项目的结构和概念,例如控制器、服务和指令。jQuery本身可以用多种(无数)方式来做同样的事情。值得庆幸的是,使用Angular.Js的情况要少得多,这使得进入和退出项目变得更加容易。它为多人为同一个项目做出贡献提供了一种理智的方式,而无需从头开始重新学习系统。


一个简短的比较可以是这样的——

jQuery

  • 对 CSS 选择器有适当了解的人可以轻松使用
  • 它是一个用于 DOM 操作的库
  • 与模型无关
  • 轻松操作网页内容
  • 应用样式以使 UI 更具吸引力
  • 简单的 DOM 遍历
  • 效果和动画
  • 简单的 AJAX 调用和
  • 实用程序可用性
  • 没有双向绑定功能
  • 当项目规模增加时变得复杂且难以维护
  • 有时您必须编写更多代码才能实现与Angular.Js中相同的功能

Angular.Js

  • 它是一个 MVVM 框架
  • 用于创建 SPA(单页应用程序)
  • 它具有路由、指令、双向数据绑定、模型、依赖注入、单元测试等关键特性
  • 是模块化的
  • 可维护,当项目规模增加时
  • 双向数据绑定 REST 友好的基于 MVC 的模式
  • 深度链接
  • 模板
  • 内置表单验证
  • 依赖注入
  • 本土化
  • 完整的测试环境
  • 服务器通信

以及更多

在此处输入图像描述

认为这有帮助。

可以找到更多-

于 2016-10-27T13:49:06.330 回答
3

jQuery :-

jQuery is a lightweight and feature-rich JavaScript Library that helps web developers
by simplifying the usage of client-side scripting for web applications using JavaScript.
It extensively simplifies using JavaScript on a website and it’s lightweight as well as fast.

So, using jQuery, we can:

easily manipulate the contents of a webpage
apply styles to make UI more attractive
easy DOM traversal
effects and animation
simple to make AJAX calls and
utilities and much more… 

AngularJS:-

AngularJS is a product by none other the Search Engine Giant Google and it’s an open source
MVC-based framework(considered to be the best and only next generation framework). AngularJS
is a great tool for building highly rich client-side web applications.

As being a framework, it dictates us to follow some rules and a structured approach. It’s
not just a JavaScript library but a framework that is perfectly designed (framework tools
are designed to work together in a truly interconnected way).

In comparison of features jQuery Vs AngularJS, AngularJS simply offers more features:

Two-Way data binding
REST friendly
MVC-based Pattern
Deep Linking
Template
Form Validation
Dependency Injection
Localization
Full Testing Environment
Server Communication
于 2016-09-03T09:11:27.193 回答