刚刚开始接触Angular,就先了解了一下它为解决什么来的~~
AngularJS
1. 是什么
AngularJS是Google推出的开源JavaScript MV*(MVW、MVVM、MVC)框架,其通过为开发者呈现一个更高层次的抽象来简化应用的开发,声明式构建视图与业务逻辑。
AngularJS弥补了HTML在构建应用方面的不足,如果HTML代码不能实现你需要的功能,可以写一个指令(directives)去实现它,然后像使用HTML标签那样去使用它,使开发者可以用来声明动态内容,从而使得Web开发和测试工作变得更加容易。
有兴趣的可以看看这个专访AngularJS框架初始人Misko Hevery
2. 哪里能用到
适合的开发类型:
CRUD(增加Create、查询Retrieve、更新Update、删除Delete)应用(如表单/报表类的应用程序),而这类应用程序在Web中所占比例高达90%
不适合的开发类型:
- DOM操作很频繁或很复杂的,如游戏之类交互体验网站。
- 过于简单的页面。
这种情况用一些更轻量、简单的技术如jQuery框架
Angular2.0+
1. 推出的原因
- 性能的限制
AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具。随着时间的推移,各种特性被加入进去以适应不同场景下的应用开发。然而由于最初的架构限制(比如绑定和模板机制),性能的提升已经非常困难了。 - 快速变化的WEB
在语言方面,ECMAScript6的标准已经完成,这意味着浏览器将很快支持例如模块、类、lambda表达式、generator等新的特性,而这些特性将显著地改变JavaScript的开发体验。
在开发模式方面,Web组件也将很快实现。然而现有的框架,包括Angular1.x对WEB组件的支持都不够好。 - 移动端的缺陷
AngularJS专注于Web开发,没有针对移动应用特别优化,并且缺少一些关键的特性,比如:缓存预编译的视图、触控支持等。 - 复杂难学
AngularJS较为复杂,学习曲线陡峭。Angular2中将复杂性封装地更好一些,让暴露出来的概念和开发接口更简单。
2. 与 AngularJS的区别
- 不再有Controller和 Scope
- 更好的组件化及代码复用
- 更好的移动端支持
- 引入了 RxJS 与 Observable
- 引入了Zone.js,提供更加智能的变化检测
此处为参考Angular4.0入门