AngularJs 的优势与缺点

做者:徐海峰
连接:https://www.zhihu.com/question/22284218/answer/20893162
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

优势:
1. 模板功能强大丰富,而且是声明式的,自带了丰富的Angular指令;
2. 是一个比较完善的前端MV*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等全部功能;
3. 自定义Directive,比jQuery插件还灵活,可是须要深刻了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,咱们能够经过阅读源代码来找到某些咱们须要的东西,如:在directive使用 $parse;
4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),可以很容易的写出可复用的代码,对于敏捷开发的团队来讲很是有帮助,咱们的项目从上线到目前,UI变化很大,在摸索中迭代产品,可是js的代码基本上不多改动。
5. 补充:Angular支持单元测试和e2e-testing。前端

缺点:
1. 验证功能错误信息显示比较薄弱,须要写不少模板标签,没有jQuery Validate方便,因此咱们本身封装了验证的错误信息提示,详细参考 why520crazy/w5c-validator-angular · GitHub
2. ngView只能有一个,不能嵌套多个视图,虽然有 angular-ui/ui-router · GitHub 解决,可是貌似ui-router 对于URL的控制不是很灵活,必须是嵌套式的(也许我没有深刻了解或者新版本有改进);
3. 对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了仍是什么其余问题,没有找到好的解决方案,奇怪的是在IE10下反而很快,对此还在观察中;
4. 此次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级以后可能会致使一个兼容性的BUG,具体详细信息参考官方文档 AngularJS ,对应的中文版本:Angular 1.0到1.2 迁移指南
5. ng提倡在控制器里面不要有操做DOM的代码,对于一些jQuery 插件的使用,若是想不破坏代码的整洁性,须要写一些directive去封装插件,可是如今有不少插件的版本已经支持Angular了,如:jQuery File Upload Demo
6. Angular 太笨重了,没有让用户选择一个轻量级的版本,固然1.2.X后,Angular也在作一些更改,好比把route,animate等模块独立出去,让用户本身去选择。git

固然使用的人多才会暴露更多的问题,一块儿为这些问题寻找解决方案是一个社区的良性趋势,选择Angular,的确使咱们的开发效率大大提升。
相关文章
相关标签/搜索