当前位置: 首页 > 科技观察

从通向简约之路:Angular2只有一个核心概念

时间:2023-03-18 01:43:29 科技观察

整体来说,Angular2变得更加简洁了,只剩下一个核心概念,那就是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的变态版本。