关于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 ...
随机推荐
- IOS UIwebview 背景色调整
自定义webview背景色 重点是把webview弄成透明的 然后把self.view的背景调色即可 UIWebview 背景透明处理 让 UIWebView 背景透明需要以下设置 web_abou ...
- recent.css常用的页面初始化样式
<style> @charset "utf-8"; body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form ...
- 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!
[阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...
- android系统启动时自动运行自己的程序
android系统在Manifest.permission中有这样一条RECEIVE_BOOT_COMPLETED的定义,当你自己的程序加 入这个权限后,就可以在系统启动完毕后收到一条系统的广播,这个 ...
- 解决eclipse下pydev的unresolved import的问题
有些模块,比如PIL,已经装入过,但是在pydev中无法自动提示,甚至有报 unresolved import的问题,虽然不会引起运行时问题,但是无法实现自动提示,还是一件很麻烦的事情. 下面有个 ...
- PHP trim()函数的一些用法
string trim ( string $str [, string $charlist ] ) - 去除字符串首尾处的空白字符(或者其他字符) trim()函数当第二个参数为空时,默认去掉空格.制 ...
- 人体时钟hone hone clock
摘要:一个由日本人设计的有意思的Flash时钟:人体时钟 hone hone clock .安装很简单,直接js导入即可,包括两种样式:透明背景和白色背景. 很可爱的一个设计,实现后效果如下: 使用方 ...
- 怒刷DP之 HDU 1160
FatMouse's Speed Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- DWZ框架Ajax无刷新表单提交处理流程
DWZ框架Ajax无刷新表单提交处理流程是: 1. ajax表单提交给服务器 2. 服务器返回一个固定格式json结构 3. js会调函数根据这个json数据做相应 ...
- VC++ UTF-8与GBK格式转换
// 注释:多字节包括GBK和UTF-8 int GBK2UTF8(char *szGbk,char *szUtf8,int Len) { // 先将多字节GBK(CP_ACP或ANSI)转换成宽字符 ...