在 Angular 中使用 jQuery 是一种不好的做法吗? [关闭]
Posted
技术标签:
【中文标题】在 Angular 中使用 jQuery 是一种不好的做法吗? [关闭]【英文标题】:Is it a bad practice to use jQuery in Angular? [closed] 【发布时间】:2019-05-01 06:32:47 【问题描述】:我的问题如下。我是否应该避免在 Angular 应用程序中使用任何类型的 jQuery 代码,因为只有一件事与 DOM 交互似乎是合法的。 另一个问题是,是否有人遇到了除了使用 jQuery 编写快速 hack 之外找不到任何其他解决方案的问题。
谢谢!
【问题讨论】:
我会说使用其中任何一个都是不好的做法,但这只是我的意见。这个问题也很固执,并不真正适合***。 它增加了很多捆绑包的大小,这对慢速网络和 CPU(移动!)非常不利。选择器和事件通常由 React 和 Angular 等库解决,因此您不需要 jQuery 来帮助解决浏览器兼容性和 API 差异。有人可以说这是一种意见,但我敢说两者都用是不好的。 Should we use jQuery with AngularJS?的可能重复 你永远不应该在 AngularJS 应用程序中包含 jQuery。这样做是不好的做法。但是,如果您使用一些包含在指令中的老式 jQuery 插件,并且包含了 jQuery,那么当您在后台处理插件时使用 jQuery 是完全可以的,即需要定位属性等。有很多SO上的“宗教”人士告诉你不要使用jQuery,但实际上他们中的大多数人并没有意识到他们自己正在使用jQuery,例如,如果他们使用的是bootstrap之类的框架。简短:如果您不需要 jQuery 作为依赖项,那么您不应该使用 jQuery。 【参考方案1】:是的,这是一种不好的做法,但有时它会为您节省很多时间,尤其是在您寻找插件时, 仅在必要时执行此操作,并记下以在其他解决方案可用时将其切换回来。
【讨论】:
【参考方案2】:您应该做的第一件事是阅读 SO "Thinking in AngularJS" if I have a jQuery background? 上的此线程。这会给你一些观点。
对于 Angular,它是驱动视图的模型,并且大多数时候不需要直接 DOM 操作。
例如,如果您使用 DOM 操作来显示\隐藏元素,添加删除类或设置样式,那么最好使用 ng-show\ng-class\ng-style 指令。
但在某些情况下需要 DOM 操作,那就是您编写指令并使用 jqLite 或 jQuery 来操作 DOM。
我的建议是避免使用 jQuery,除非你必须合并一个依赖于 jQuery 的 jquery 插件。
在开发时,请始终查看是否可以满足您的目的的内置指令。如果不能,可以使用 jqLite 来实现所需的功能。你最后的选择应该是 jQuery。
【讨论】:
谢谢,这让它更清楚了一点。 欢迎亲爱的。如果这对您来说很清楚,那么您可以将其标记为已回答!【参考方案3】:嗯,这只是两个大资源,这使您的应用“沉重”。否则,这只是一个偏好。就我个人而言,我不将 jQuery 与任何反应式框架(Vue、React 或 Angular)一起使用。 请记住,任何 jQuery 可以做的事情,你都可以用 vanilla JS 做。
【讨论】:
以上是关于在 Angular 中使用 jQuery 是一种不好的做法吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 - jQuery |使用鼠标位置添加样式(上/左)
Angular2 中的 jQuery .slideUp() 和 .slideDown() 等效项