zoukankan      html  css  js  c++  java
  • 关于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则像是搭桥,只需要考虑怎么从一点达到另一点,过程可以是不优雅的,也可以是很高效的。但只要实现了,下次就可以反复重用,只是在运行效率上会有所不同。

        

  • 相关阅读:
    C#通过反射获取类中的方法和参数个数,反射调用方法带参数
    C#利用WinRAR实现压缩和解压缩
    C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
    C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
    MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用
    JSON对象与字符串之间的相互转换
    Javascript正则表达式详细讲解和示例,通俗易懂
    C#比较两个list集合,两集合同时存在或A集合存在B集合中无
    Uploadify 3.2上传文件,限制类型,大小,传递参数等
    c# 反射得到实体类的字段名称和值,DataTable转List<T>
  • 原文地址:https://www.cnblogs.com/xujanus/p/5685819.html
Copyright © 2011-2022 走看看