Angular2与Angular1的区别
原文地址: http://www.angularjs.cn/A2Ar
整体上来说,Angular2变得更加简洁,最核心的概念只剩下一个,那就是组件Component,其它所有的一切都是围绕着Component展开的。
从这一点来看,Angular2无疑是受到了React的强力影响,毕竟React的核心概念也只有一个,也是Component。
所以,在使用ng2的时候,大家只要会写Component就行了,其它那些什么服务啊、路由啊、管道啊,都是些小工具而已。
接下来罗列一下Angular2与之前的1.x相比带来的核心改变。
第一点:Angular2删掉了$scope的概念。
在ng1.x里面,$scope是一个相当强大又相当可怕的东西,一言不合就让开发者自己$apply。ng2响应社区的强烈吐槽,删除(或者说隐藏) 了$scope这个东西,开发者不再需要感知到它的存在,另外,由于ng2引入了zone.js,所以即使在各种回调函数中修改数据模型也不需要手 动$apply()了。
这一点说明了群众们吐槽的力量还是相当强大的!
第二点:删掉了ng-controller指令。
Controller终于和Component合体了,小僧想说的是,人家Backbone早就这么做了,你们一开始只顾着自己挖坑,也不看看友军的战法,还好浪子回头为时不晚。
第三点:大幅度演进了脏值检测机制。
大家都知道,”双向数据绑定“之所以能工作,都是因为底层有”脏值检测“这么一个神奇的东西。而实际上ng1.x里面的脏值检测机制的运行效率是非常差的,这就是为什么大家一直在吐槽绑定的对象不能太多、太深的原因。
那么,在ng2中,大幅度演进了这一机制,不仅引入了单向绑定,还引入了各种绑定策略,例如:只检测一次、利用JIT动态生成脏值检测代码等等。毫无疑问,有了这些工具之后,数据绑定效率不再是问题。
第四点:嵌套路由问题。
大家都知道,在ng1.x里面有一个非常讨厌的问题,官方的路由机制是不能嵌套的,这就导致大家在开发的过程中不得不依赖于第三方的ui-router库。ng2中没有这个问题了,因为ng2的路由是基于Component的,天然就支持嵌套。
第五点:依赖注入机制改造。
ng2里面的依赖注入简直和Java中的注解一毛一样,估计核心开发团队里面混入了Java大神。如果你熟悉Spring那一套注解的用法,那么写ng2的组件几乎没有学习成本。
第六点:框架整体上基于TypeScript开发。
这是最大的一个变更,但是大家不用害怕,因为你只要记住我一句话就再也没有顾虑了:TypeScript和ActionScript3一样,不过是变态版的Java而已。
最新文章
- 51nod 算法马拉松18 A 染色问题
- VirtualBox Guest Additions 在CentOS中无法安装的解决方法
- phar文件的使用
- 【安卓安全】ARM平台代码保护之虚拟化
- marquee标签滚动效果
- zigbee学习之路(四):按键控制(中断方式)
- Android中的图片压缩
- oracle对象类型
- Java 反射 ParameterizedType 参数化类型
- Cocoa Foundation框架学习笔记 - NSCalendar
- [oracle]一个最简单的oracle存储过程";proc_helloworld";
- 命令cp
- python写的自动签到脚本。
- 使用接口的方式调用远程服务 ------ 利用动态调用服务,实现.net下类似Dubbo的玩法。
- cocos2D(五岁以下儿童)---- CCNode
- jQuery第九章
- spring学习之spring 插件 for eclipse
- 开源智能英文单词提取翻译工具(C#)
- 爬虫:输入网页之后爬取当前页面的图片和背景图片,最后打包成exe
- 1823: [JSOI2010]满汉全席 2-sat
热门文章
- UML-如何画常用UML交互图?
- Tooltips
- CkEditor - Custom CSS自定义样式
- sbt 设置
- Kubernetes系列二: 使用kubeadm安装k8s环境
- python基础——异常处理及断言
- 使用VMware vSphere Client管理ESXI(新建虚拟机)
- Perl: 单引号里面的直接给当做标量了,而直接输出($`)的话就是变量值,即相符段落的前置字符会存到这里。输出‘$`’ 就变成标量值了
- centos7 国内镜像yum安装mysql5.7
- php先响应后处理