智能家居
jquery下拉菜单(如果你会jQuery该怎么学AngularJS:(上))

关于jQuery和Angular.js之间的详细比较

在jQuery中,你通常会设计一个页面,然后再给它动态效果。这是因为jQuery的设计就是为了扩充DOM并在这个简单的前提下疯狂生长的。

2. 不要用AngularJS来加强jQuery

很多开发者使用150或200行代码的jQuery插件创造出复杂的解决方案,然后使用一堆callback函数以及$apply把它粘合到AngularJS里,看起来复杂难懂;但是他们最终还是搞定了!问题是在大多数情况下这些jQuery插件可以使用很少的AngularJS代码重写,而且所有的一切都很简单直接容易理解。

3. 总是以架构的角度思考

那么要如何做到呢?如何“think in AngularJS”?这里有一些基本原则,对比jQuery。

在jQuery里,编程改变视图。会将一个下拉菜单定义为一个ul :

当只关注视图时,这里不会立即明显的体现出任何(业务)功能。对于小型应用,这没什么不妥。但是在规模较大的应用中,事情就会变得难以理解且难以维护。

这两种方式做了同样的东西,但是在AngularJS的版本里任何人看到这个模版都可以知道将会发生什么事。不论何时一个新成员加入开发团队,他看到这个就会知道有一个叫做dropdownMenu的directive作用在这个标签上;他不需要靠直觉去猜测代码的功能或者去看任何代码。视图本身告诉你会发生什么事。这样就清晰多了。

记住:不要设计,然后写标签。你需要架构,然后设计。

这是到现在为止最酷的AngularJS特性。这个特性使得前面提到的很多DOM操作都显得不再需要。AngularJS会自动更新视图,所以你不用这么做!在jQuery里,响应事件然后更新内容,就像这样:

但是其实还可以这样来做:

数据绑定其实是双向的。所以这些log信息在视图里也可以是可编辑的。只需要这么做:

智能社 撰稿,转载请注明来源!


顶一下()     踩一下()
打赏

热门推荐

发表评论
0评