你必定好奇@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了。