关于angularJS与jquery在使用上的一些感悟
最近做的项目中,有同时用到angularJS与jquery两种JS框架。
在使用过程中发现,angularJS的用法更像是面向对象的编程模式。它会要求你定义一个view model,然后所有的页面变化,是通过改变这个view model来实现的。一旦搭建好了这个框框之后,页面的操作会非常爽,完全不用考虑具体页面怎么变化,怎么去操作doom的问题,浏览器兼容性的问题angularJS也一并帮你解决了。
而jquery的用法,更像是面向过程的编程模式。你在用jquery写具体代码的时候,你需要先考虑到你要实现的场景是怎么样的,然后把具体的实现过程用代码表示出来,而且这种实现往往是单向的。也就是说下次你要再进行页面改变的时候,又得用代码实现一边(而angularJS则只要吧view model的数据还原下就可以了)。
angularJS的优点在于,操作页面变化简单,你甚至不用去考虑页面具体怎么变化的。但是缺点是,框架提供的页面变化往往比较简单,复制的页面变化,如动画,游戏之类的,还是要考jquery来写会比较方便(angularJS毕竟没有这种复杂的前端组件实现)。
使用经验,用angularJS的时候,要把view和model隔离开来,不能经常去修改doom层和css,能做到这点的话,之后怎么改变view model都可以,可以经常改变页面的显示状态。而使用jquery的时候,则相反。要目标明确,因为主要要考虑页面的变化怎么实现,因此从一种状态转化成另一种状态的时候,尽量保证每次的初始条件都一样(相同浏览器,相同触发事件,相同环境)。不然会因为jquery的无状态的特性,会有很多不可预期的变化出现。jquery实现一些复杂的操作的时候,会经常出现类似“打补丁”的情况。这也是由于实现的复杂度和不可控因素所导致的。所以jquery的一些操作会变得很复杂,因此要尽量封装起来,以便下次重用。
总结,所以angularJS是把view model独立出来。而jquery是把单次操作独立出来。两者关注的点不同,使用场景和使用方法也不同。个人体会是,angularJS像是搭积木,一开始要小心翼翼,搭好之后就可以随便玩。而jquery则像是搭桥,只需要考虑怎么从一点达到另一点,过程可以是不优雅的,也可以是很高效的。但只要实现了,下次就可以反复重用,只是在运行效率上会有所不同。
关于angularJS与jquery在使用上的一些感悟的更多相关文章
- angularJS和jQuery的区别
问题: 假如我熟悉利用jQuery去开发客户端应用,那么我怎么上手angularjs,能否描述下所需要的模式转变,下面这些问题能够帮助你给出一个回答: 1.在设计客户端web应用的时候有什么区别,最大 ...
- 关于angularjS与jQuery框架的那些事
这篇文章主要介绍了jQuery和angularJS的区别浅析,本文着重讲解一个熟悉jQuery的程序员如何应对angularJS中的一些编程思想的转变吗,需要的朋友可以参考下 最近一直研究angula ...
- AngularJs 与Jquery的对比分析,超详细!
闲来无事,在网上发现了一篇对比AngularJs和Jquery的文章.恰好最近自己也在研究AngularJs.特此收藏.需要的朋友可以参考. 原问题:假如我熟悉利用jQuery去开发客户端应用,那么我 ...
- AngularJS vs. jQuery
很多Web开发新手都会有这样的疑问“我应该使用什么开发框架呢,如何快速学会Web开发呢?”这个问题其实没有一个统一的正确答案,其中讨论最多的就是AngularJS和jQuery的差别.这两者的之间的比 ...
- AngularJS vs. jQuery,看看谁更胜一筹
http://www.apjs.net/ http://docs.angularjs.cn/api/ng/function 本文由PHP100中文网编译,转载请看文末的转载要求,谢谢合作!除非特别声明 ...
- AngularJS的核心对象angular上的方法全面解析(AngularJS全局API)
总结一下AngularJS的核心对象angular上的方法,也帮助自己学习一下平时工作中没怎么用到的方法,看能不能提高开发效率.我当前使用的Angularjs版本是1.5.5也是目前最新的稳定版本,不 ...
- Angularjs+node+Mysql实现地图上特定点的定位以及附加信息展示
注:本博文为博主原创,转载请注明出处. 在上一篇博文中主要讲述了如何利用AngularJs+Node+MySql构建项目,并实现地图上的多点标注,今天在这篇文章中,我们将在上一个项目的基础上,实现特定 ...
- 赞!带进度条的 jQuery 文件拖放上传插件
jQuery File Uploader 是一个 jQuery 文件拖放上传插件,包括 Ajax 上传和进度条效果.作者编写这个插件的想法是要保持它非常简单,不像其他的插件,很多的标记,并提供一些 H ...
- 带进度条的 jQuery 文件拖放上传插件
jQuery File Uploader :jQuery File Uploader 是一个 jQuery 文件拖放上传插件 兼容性判断 下载:https://github.com/danielm/u ...
随机推荐
- C++重载自增/减操作符
作为类成员使用. 前缀是先加/减1,再取值:后缀是先取值,再加/减1. 前缀是左值,返回引用:后缀是右值,返回值. 后缀多一个int参数进行区分,用时编译器会传个没用的0作实参. 在后缀实现中调用前缀 ...
- PreparedStatement和Statement的区别
转自:http://blog.sina.com.cn/s/blog_77eba18f01019csh.html 1. PreparedStatement接口继承Statement, PreparedS ...
- iOS UIimage初始化时的两种方法
第一种方式:UIImage *image = [UIImage imageNamed:@"image"]; 使用这种方式,第一次读取的时候,先把这个图片存到缓存里,下次再使用时直接 ...
- 重构6-Push Down Field(字段下移)
与上移字段相反的重构是下移字段.同样,这也是一个无需多言的简单重构. public abstract class Task { protected String _resolution; } publ ...
- 常用排序算法之JavaScript实现
1.插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从 后向前扫描,找到相应位置并插入 ...
- 瀑布流插件(jquery.masonry.js)
什么是瀑布流?去看看Pinterest(这才是鼻祖),Mark之,蘑菇街,点点网,还有腾讯的微博广场吧.随着页面滚动条向下滚动,还会不断加载数据块并附加至当前尾部. Masonry是一款很好用的jqu ...
- Python之Python Imaging Library
document:http://effbot.org/imagingbook/pil-index.htm http://pillow.readthedocs.io/en/3.1.x/index.htm ...
- jquery简单的图片切换效果,支持pc端、移动端的banner图片切换开发
详细内容请点击 无意中看见了两年前写的一个图片切换,那会儿刚刚学习网页制作,可以说是我的第一个处女座的jquery图片切换效果.无聊之余对它的宽度稍稍做了一下修改,变成了支持pc端.手机端全屏的ban ...
- Asp.Net-创建网站的快捷方式到桌面,开始菜单,收藏夹
/// <summary> /// 创建快捷方式 /// </summary> /// <param na ...
- Java之姐妹素数
所谓素数就是指相邻两个奇数均为素数, 判断一个数是否为素数的基本方法是:(以n=5为例) package com.cdp.SuShu; public class sushujisuan { publi ...