小编典典

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

angularjs

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

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

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


阅读 331

收藏
2020-07-04

共1个答案

小编典典

关于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指令来实现部分代码
2020-07-04