angularjs 优缺点

其实写这篇博客,主要是为了回顾一下以前用过的mvw框架,谷歌公司开发的ng,害怕自己给忘了

现在单位写vue多一点,但是老的东西也不能忘

  anguarjs 最为核心的是:MVW(Model-View-Whatever)、模块化 、自动化双向数据绑定、语义化标签、依赖注入等等

它是一个javascript框架。是通过script引入,他是一个用JavaScript编写的库。angurajs 通过为开发者呈现一个更高层次的抽象来简化应用的开发。如同其他的抽象技术一样,这样也会损失一部分灵活性。换句话说,并不是所有的应用都适合用ng开发。AngularJS主要考虑的是构建CRUD应用。幸运的是,至少90%的WEB应用都是CRUD应用。但是要了解什么适合用AngularJS构建  ,就得了解什么不适合用AngularJS构建。

          如游戏,图形界面编辑器,这种DOM操作很频繁也很复杂的应用,和CRUD应用就有很大的不同,它们不适合用AngularJS来构建。像这种情况用一些更轻量、简单的技术如jQuery可能会更好。


优点:

1. 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;

2. 是一个比较完善的前端MVC框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;
3. 自定义Directive(指令),比jQuery插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;
4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。

缺点

1. ngView只能有一个,不能嵌套多个视图,虽然有 angular-ui/ui-router · GitHub 解决,但是貌似ui-router 对于URL的控制不是很灵活,必须是嵌套式的;
2. 对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了还是什么其他问题,没有找到好的解决方案,奇怪的是在IE10下反而很快;
3. 这次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG,具体详细信息参考官方文档 AngularJS ,对应的中文版本:Angular 1.0到1.2 迁移指南
4. ng提倡在控制器里面不要有操作DOM的代码,对于一些jQuery 插件的使用,如果想不破坏代码的整洁性,需要写一些directive去封装插件,但是现在有很多插件的版本已经支持Angular了,如:jQuery File Upload Demo
5. Angular 太笨重了,没有让用户选择一个轻量级的版本,当然1.2.X后,Angular也在做一些更改,比如把route,animate等模块独立出去,让用户自己去选择。

6.本身的脏值检查机制,当页面数据发生变化时,就会触发检查机制,当页面绑定的数据越来越多时,就会造成程式不断的去触发脏值检查机制,程序的相应就会越来越慢

7.作用域$scope作用域的限制,使得很多原生的事件不能使用。比如click事件,必须使用指令来实现

8.表单校验的时候必须写一个指令来提示错误信息,很麻烦




你可能感兴趣的:(angularjs)