当前位置: 首页 > 面试题库 >

我们应该在AngularJS中使用jQuery吗?

翟单弓
2023-03-14
问题内容

我们的网站目前正在使用jQuery库,每月的访问量约为100万。我们希望包括以API为中心的方法,因此决定转向Javascript
MVC并为此选择了angularJS。

现在我的问题是,我应该在Angular顶部使用jQuery,以便我需要重写最少的DOM操作代码,还是应该以Angular方式重写所有内容?我们使用的是jQuery插件,例如plupload,jQuery
UI。等在网站上。请提出最佳迁移方式(页面加载时间也很重要)。

如果我有jQuery背景,已经经历过“ Thinking inAngularJS”了吗?但没有得到明确的答案


问题答案:

关于AngularJS的好处,在进行迁移之前需要考虑。

  1. 它仅通过将变量存储在作用域中来提供两种方式的绑定。
  2. 与JQuery相比,我们还需要编写代码。
  3. 模块化实施(通过创建angular.module
  4. 将大多数代码从Javascript转换为HTML,使代码看起来更简洁。
  5. 单例模式器在那里存储数据并在多个控制器或服务之间共享。
  6. 它内置有较小版本的jQuery(称为JQlite),该版本具有大多数基本功能,但是您想在AngularJS中使用JQuery,那么只要您需要在其中添加jQuery引用,JQLite功能就可以轻松使用它。转换为JQuery。

您不应该在AngularJS的顶部使用jQuery,因为如果我们使用JQuery进行任何角度DOM操作或范围变量操作,AngularJS摘要循环都不会运行。

在将jQuery组件迁移到AngularJS时,您需要遵循以下内容

  1. 您需要第一个搜索angular-ui-bootstrap站点,因为它们涵盖了大多数UI组件,而这些组件已经转换为angular。
  2. 我确定您不会找到每个Angular插件,因为您应该将该插件包装到指令中。这将使您可以控制放置指令的DOM元素。
  3. 不要试图从外部角度上下文绑定事件,这将创建摘要循环,从而导致UI绑定更新受到影响。
  4. 确保在进行任何应该使用$http而不是使用的ajax调用时$.ajax
  5. 您可以在jQuery代码中找到很多可以被ng-class指令替换的位置,例如,如果您仅添加和删除类,或根据任何条件显示某些元素,以便可以替换某种jQuery代码通过使用ng-class指令
  6. 查找仅删除DOM或添加DOM的位置,这些位置可以很容易地由ng-if指令替换,或者仅显示元素隐藏可以通过使用ng-show/ 来完成ng-hide
  7. 还可以在UI中找到这样的部分,其中您正在使用for循环创建相同的DOM,可以将其转换为有角度的本机指令 ng-repeat
  8. 如果您想显示和隐藏多个元素,则可以使用ng-switch指令来实现部分代码


 类似资料:
  • 哈希集由哈希映射支持。从它的JavaDoc: 这个类实现了Set接口,由哈希表(实际上是一个HashMap实例)支持 在查看源时,我们还可以看到它们之间的关系: 因此,一个<code>哈希集 使用而不是,不是更有效吗?进一步考虑的是,如果环境允许使用而不是,我们是否应该完全放弃,直接使用。 触发这些想法的基本问题是以下情况:我有一组具有以下属性的对象: 大型对象集合 如何有效地检查集装箱? 我想到

  • 问题内容: 我有2个线程T1和T2,两者都有不同的工作,因此通常我们更喜欢通过线程Joins完成此任务。 但是我们无需使用join()就可以做到这一点。我们可以在T1线程中添加T2线程的代码。这有什么区别? 问题答案: 主要区别在于,当我们将T2线程与T1连接在一起时,T2执行该任务的时间也可以由T1占用,这意味着它们将并行执行不同的任务。但是,当您在T1中包含T2线程代码时,不会发生这种情况。线

  • Android开发人员教程建议我使用片段的主机活动来传递数据等等,那么为什么会有一个设置/获取目标片段的方法呢? 到目前为止,我的应用程序包含一个宿主活动和一个片段,其中有一个按钮可以启动一个对话片段,其中有一个按钮可以启动另一个对话片段。使用让整个磨难有些混乱,所以我正在考虑重新实现,让我的主要活动通过我的主要片段的自定义界面处理方法。 这是正确的思维方式吗?还是使用没有害处?任何人都可以提供使

  • 我是RxJava新手,目前正在使用RxJava版本1。我的用例就像我必须进行一次rest API调用(使用rest模板)。因此,使用调度器是更好的主意吗。在这种情况下,每次都可以使用computation()或任何调度器。 我的课程是 SampleController。Java语言 服务Java语言 在这里,我使用Schedulers来启动新线程。但我再次使用延迟结果进行即时响应,Spring将把

  • 问题内容: 试图找到AngularJS的一些基本信息,但是AngularJS文档并没有太大帮助。简单地说,我们为什么要使用它? 同样,在约翰·帕帕(John Papa)的Hot Towel模板中,通用模块中有一个自定义函数: 我不明白这是怎么回事。因此,这是几个基本问​​题: 1)怎么办? 2)和之间有什么区别? 问题答案: 怎么办? 正在通过应用程序范围发送事件。该应用程序的任何子级范围都可以使

  • 问题内容: 这是我从这里看到的代码。我对关键字感到困惑。 对于,我需要? 对于,我需要? 问题答案: 无需在回调中使用return语句。Promise构造函数不期望回调返回任何类型的返回值。 因此,在该回调中使用语句的原因仅是为了控制该函数中的执行流程。 如果您希望回调内部的执行完成而又不执行该回调中的任何其他代码,则可以在此时发出a 。 例如,您可以这样编写代码,而无需声明: 在这种情况下,您使