您如何描述jquery和angularjs之间DOM抽象的不同性质?

时间:2015-03-16 09:59:03

标签: jquery angularjs model-view-controller abstraction

我正在寻找对jquery和angular之间的DOM抽象完全不同的方法的描述,但我找不到它。

我认为在使用前者和后者开发多年后,我对jquery和angularjs的了解相对较好。

使用jquery完成的DOM抽象看起来与使用angularjs完成的DOM抽象完全不同。

但是我找不到这些差异的正式定义,我不知道它是否是客户端网络应用程序设计模式的变化,如果是这样,它背后的哲学是什么。

理论上jquery逻辑与DOM的解耦更严格,因为所有的js代码都被排除在HTML之外,但实际上(在我看来)角度指令(结合双向绑定)可以让你更清洁简洁的DOM抽象。

但这是网络发展模式的转变吗?看起来如此,无论是淘汰赛,反应赛,余赛还是更多......分享那种类似的方法。

这只是进入MVC的结果吗?

如果有人能指出我背后的理论,我会很感激。

1 个答案:

答案 0 :(得分:1)

尝试用&#34;命令式&#34;来考虑它。 vs&#34;声明&#34;。使用jQuery,您编写的JS创建了一个严格的DOM结构,与您尝试显示的数据相关联(您循环遍历数组,并为每个项生成<tr>例如)。使用AngularJS,您将引入一种新的语言&#34; - 数据(模型)和表示(DOM)之间的抽象层 - 我们有时称之为#34;绑定&#34;。 ng-repeat在幕后工作的方式与编写生成<tr> s的jQuery循环没有什么不同,但是你不能自己直接这样做,它是在很好的声明性包装器,你告诉AngularJS你想要在DOM中有一个东西列表,那个列表应该绑定到模型层中的东西列表。

让我更清楚一点:内部AngularJS使用一个简单的,与API兼容的微小jQuery子集,允许Angular以跨浏览器兼容的方式操作DOM&#34; - https://docs.angularjs.org/api/ng/function/angular.element