2017-02-23 64 views
1

Angular 2被认为是前端开发的完整框架。优点之一是以一种可管理的方式进行前端交互,与jQuery的各种功能形成鲜明对比。Angular 2的最佳实践

。另一方面,jQuery是非常灵活的,其功能可以根据需求通过功能功能应用。它与纯HTML代码很好地协作,尤其是外观设计师准备的漂亮模板。从这个前瞻来看,jQuery看起来更加敏捷。

应用Angular 2的最佳做法是什么?它应该与jQuery,bootstrap和其他前端库/框架混合在一起吗?他们每个人应该承担什么责任?

+1

取决于需求,这并不意味着如果你使用angular2 jQuery不应该明确使用。寻找选择。 Angular2拥有一切。 – Aravind

+0

使用什么组件取决于需求。然而,可怕的是开发人员按照自己的偏好使用jQuery,并且使应用程序前端难以管理。因此,我期望在一起使用时采取最佳做法或至少提供指导方针。 –

+3

最佳做法是不要将jQuery与Angular2一起使用。 –

回答

4

由于这个问题是关于软件设计角度的版本,你可以阅读各种点意见答案,我不会假装拘留'最好的答案',并会试图坚持事实。

的jQuery最初是通过jQuery UI的插件,以及数据/异步管理设计为一个DOM操作库,再加上造型如许诺,推迟,AJAX调用。除了它们可以很容易链接的事实之外,这些不同的功能集并不会与其他功能相互作用太多。 jQuery不是一个框架,而是一个库。

  • Angular2的documentation根本不建议操纵DOM元素。当需要的指南是使用它的Angular2的渲染器。
  • Angular2使用它的'http'类提供ajax调用。
  • Angular2发挥良好将rxJs Observables,Promises等允许您成为异步行为的主人。缺点是学习曲线不止陡峭。
  • CSS3现在在这里,并且非常支持动画。可以通过类绑定来更改组件的外观。
  • 自举可以在Angular2项目中使用,and doesn't need jQuery to run ,除非使用它的JavaScript库

即使在一个项目中使用jQuery是令人信服的:

  • jQuery有一个伟大的过去,学习它是很容易的,有很多的用户。
  • 说真的,它的表现非常好。图书馆只需要84kb的缩小。
  • jQuery拥有大量的插件,插件在angular2世界中没有自己的继任者。例如Boostrap'javascript'插件主要是(如果不是全部的话)jQuery插件。 see here
+0

您指出了我的问题背后的理性。 1)数据模型应该来自AJAX调用。 2)尽可能地防止DOM元素操作。 3)使用CSS3来改变外观。 4)但是,jQuery拥有大量的插件和布局模板,而其中大多数在Angular2世界中没有后继者。我们如何处理它们? –

+0

当我经历了一些使用Angular 4和jQuery的项目后,我学会了如何平衡Angular 4和jQuery并将它们组合在一起。正如以上几点所描述的,最大的挑战是jQuery和Angular操纵DOM。我使用主HTML页面(index.html)来包含所有jQuery的东西,并在一些Angular组件实例中调用jQuery函数,以避免冲突。一般来说,Angular有助于管理组件交互,而jQuery则有助于装饰。 –

+0

更正:Bootstrap JS可以在没有jQuery的Angular 2+中使用:https://github.com/valor-software/ngx-bootstrap – Ryall

1

一个Angulars核心思想是不是直接操纵的DOM,这是jQuery的核心理念去做。正如@GünterZöchbauer所说,除非你真的必须(这是非常罕见的),否则不要使用它。 jQuery更像是一个辅助库,Angular是一个框架,应该这样使用。
你当然也可以与引导混吧,而你应该只使用了样式和使用角2版引导的,但:https://valor-software.com/ng2-bootstrap/#/https://github.com/ng-bootstrap/ng-bootstrap

至于

等前端库/框架在一起吗?

你不应该把它和另一个框架混淆在一起,这只会混淆视听。图书馆肯定不过,对于大多数流行的库出存在(或将存在),它带有打字稿支持等