最近工作需要用到,接触的比较多,在此系统学习一下。
angular.js 是新一代web MVC开发框架,对应 模型,视图,控制器.,相比 jquery 模式,这种新玩意竟然不需要开发者直接去操作dom .
angular.js的优点:
1.数据双向绑定,视图与模型保持一致性,视图的改变可以同步到模型,模型的改变也可以体现在视图上. 2.依赖注入,起初学习,这点不是特别好理解,比如一个视图对应一个控制器,我们知道逻辑部分要写到控制器里面,加入A,B视图都有共用 的模块需要从线上服务器取相同数据,这是我们就可以写一个angular.js的服务,然后把服务注入控制器中,这时只要碰到相同需求 模块都可以直接调用注入服务所暴露出来的方法属性.不清楚没有关系,以后的学习会逐渐明白. 3.它是一款独立前端框架,或者组件,不依赖任何第三方库,框架.就是说你直接引用angular.js文件就可以工作了.不需要再引用其他依 赖类库.但是如果你想使用第三方库,也不受任何影响,比如和jquery同时使用是没有问题的. 4.把前端框架 MVC模式化,到目前为止貌似angular.js是真正的把前端MVC化.方便开发和维护,一个试图对应一个路由,一个路由绑定 一个控制器,开发维护起来一目了然. 5.和以往任何页面请求模式是不一样的,服务器端不需要组装好html页面然后回发到客户端,而是服务器端只需要把数据和模板发回来, angular.js在客户端自己组合,这样可以节省很多服务器资源,确切的说服务器完全只是在提供api. 6.强大的自定义指令,扩展起来非常方便,可以完成你希望完成的任何功能. 7.google的大光环照耀下,开源社区的不断壮大,发展普及会越来越快.
任何东西都不是十全十美的,下面说下我感觉属于它的缺点部分
angular.js的缺点:
1.对原生HTML语法的侵入性,angular.js 的指令都是直接在标签里定义,例如 <span ng-show="true" >我出现了</span> ng- show 就是angular.js的一个指令,而非html标签定义.
2.学习成本相对较高,它完全不同以往的任何js框架,angular.js可以实现任何效果,但是却不需要你在客户端操作任何dom ,完全是指 令,控制器,视图之间的动态绑定实现.
3D:
Data Binding
Dependency Injection
Directive