Angular 2.0與1.3版本相比,有哪些方面的改進呢?
01-21
改動很大,基本把原來存在的問題都解決了,也對標準作了很多考慮。
知乎的編輯器不支持markdown嗎。。。好不習慣,我剛寫了一篇博客來表達自己對Angular2.0的感慨,地址在這裡:
浴火重生的Angular · Issue #9 · xufei/blog · GitHub
剛才天豬回答的那篇鏈接,內容非常值得看,我之前花了一些時間翻譯了一遍,也貼出來給大家看看吧:
有關Angular 2.0的一切 · Issue #8 · xufei/blog · GitHubTL,NR
all-about-angular-2-0
http://eisenbergeffect.bluespire.com/all-about-angular-2-0/?utm_source=javascriptweeklyutm_medium=emailAngular 1.X可以說是 上一代前端MVC/MVVM框架的代表。
隨著Angular 2.0 的發布,可為是徹底顛覆了之前的版本,絕大多數的代碼無法在2.0版本使用,upgrade自己的project到2.0成為了不可能完成的任務,此時質疑聲屢屢不短。後來開發團隊宣布1.X版本和2.0版本可以在一個project里共存,使升級成為了可能,http://angularjs.blogspot.co.nz/2015/08/angular-1-and-angular-2-coexistence.html
才使開發者情緒有所緩和 。在開發中的Angular 2.0版本當中,移除和替代了directives, controllers,modules, scopes,幾乎移除了1.X版本里所有最重要的核心concepts。
Angular 2.0相比與之前的版本,簡單來說主要有:- 對自身性能的優化
- 對於Native Apps的支持
- 伺服器端渲染
性能方面
如果你接觸Angular 1.X 時間夠長 ,你會知道每一個digest周期,Angular都會檢查成千上百數值的變化,這樣會拖慢整個框架的速度。Angular 2.0 採用React所使用的模型:one-way data flow 和 immutable data。根據以上的加強與優化,Angular2.0隻需要更新一次數據,偵測數據的變化不再是數值本身而是迅速的檢查object的reference。對Native Apps的支持
Angular 2.0對Native apps的支持和渲染是基於react native的。所以在Angular 2.0中你可以使用原生ios/android 的UI。
伺服器端渲染
現版本的Angular對SEO的支持很差,哪怕是添加第三方的package,仍然不是那麼理想。所以增加對伺服器端渲染的支持勢在必行。Angular 2.0的伺服器渲染使初始頁面的讀取時間大大縮短,同時提高對SEO的支持和優化。Angular 2.0的優缺點對比:
為什麼要使用Angular 2.0?在今後的很長一段時間,Angular都應該會被維護和更新,所以大可以放心的使用在新的Project中。同時Angular 2.0 相對於 1.X版本有了質的飛躍 ,像極了曾經的SproutCore升至SproutCore 2.0 (也就是後來被人熟知的Ember)。Angular 2.0同時採用TypeScript(微軟增強版本的JavaScript),社區的大批開發者都非常願意去使用。雖然現在全民Angular 2.0為時尚早,但不妨多關注關注。參考:Smashing Boxes開了個angular 2學習項目 https://github.com/kittencup/angular2-ama-cn/issues
改動非常大, 吸收了angular1的很多教訓+reactjs的不少優點, 具體
- Web Component組件化
- 之前也有組件(directive), 但是
- 難寫,bug多
- 組件之間無法自由組合
- 2.0的非常易寫,而且類似jsx, 把html和js混合,用decorator語法(比jsx更加人性化)
- 能使用polymer組件
- typescript,es6的超集,有類型系統,帶來的結果是
- runtime bug少,在編譯階段解決部分bug
- 更好的代碼提示
- 更快的性能
- 單向綁定(不再有ng-model, $scope,雙向綁定等)
- 性能大升
- server rendering(這個灰常牛逼,尤其是在你極為注意前端性能的時候, server rendering 可以結合 bigpipe 用, 具體看這裡:https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919 要翻牆 中文介紹看這裡:BigPipe學習研究 ? 搜索技術博客)
- 使用簡單的語法,可以達到和雙向綁定一樣的功能
- 什麼module,controller都沒了,只有es6的class
- 我想說,世界乾淨多了
- 從前的angular, 你很難說清楚什麼是你程序中真正的模塊
- shadow css
- css也變得組件化,而不再是全局規則
- 新的observe機制, 不再需要$scope.$apply, 而且檢測速度x5
- etc....
angular1.x用了一段時間,2.0出來後看了些資料,雖然沒有正式發布,但是還是非常期待
據說2.0基本上顛覆了1.x的大部分東西。不如作為兩個框架來比較好些。
一個能自我革命的框架還是值得把玩的
推薦閱讀:
※Web 前端開發有哪些痛點?各大公司是如何解決或緩解的?
※如何評價 Ant Design 分享的『字型大小選擇』背後的數學/物理規律?
※react真的好用嗎?
※Apache2 協議中的專利條款和 Facebook 的 BSD 協議附加的專利條款有什麼本質區別?