你必定好奇@Component和@View究竟是怎么回事。看起来像其余语言(好比python) 的装饰器,是这样吗?python
ES6规范里没有装饰器。这其实利用了traceur的一个实验特性:注解。给一个类 加注解,等同于设置这个类的annotations属性:bootstrap
等同于:app
很显然,注解能够看作编译器(traceur)层面的语法糖,但和python的装饰器不一样, 注解在编译时仅仅被放在annotation里,编译器并不进行解释展开 - 这个解释的工做是 Angular2完成的:函数
据称,注解的功能就是Angular2团队向traceur团队提出的,这不是traceur的默认选项, 所以你看到,咱们配置systemjs在使用traceur模块时打开注解:测试
若是你了解一点Angular1.x的bootstrap,可能隐约会感觉到Angular2中bootstrap的一些 变化 - 我指的并不是代码形式上的变化。spa
以组件为核心3d
在Angular1.x中,bootstrap是围绕DOM元素展开的,不管你使用ng-app仍是手动执行bootstrap() 函数,自举过程是创建在DOM之上的。code
而在Angular2中,bootstrap是围绕组件开始的,你定义一个组件,而后启动它。若是没有一个组件, 你甚至都没有办法使用Angular2!blog
支持多种渲染引擎编译器
以组件而非DOM为核心,意味着Angular2在内核隔离了对DOM的依赖 - DOM仅仅做为一种可选的渲染引擎存在:
DOM Render已经实现,Server Render正在测试,iOS Render和Android Render 是可预料的特性,虽然咱们看不到时间表。
这有点像React了。