Angular 2.0與1.3版本相比,有哪些方面的改進呢?


改動很大,基本把原來存在的問題都解決了,也對標準作了很多考慮。

知乎的編輯器不支持markdown嗎。。。好不習慣,我剛寫了一篇博客來表達自己對Angular2.0的感慨,地址在這裡:

浴火重生的Angular · Issue #9 · xufei/blog · GitHub

剛才天豬回答的那篇鏈接,內容非常值得看,我之前花了一些時間翻譯了一遍,也貼出來給大家看看吧:

有關Angular 2.0的一切 · Issue #8 · xufei/blog · GitHub


TL,NR

all-about-angular-2-0

http://eisenbergeffect.bluespire.com/all-about-angular-2-0/?utm_source=javascriptweeklyutm_medium=email


Angular 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....

個人覺得angular2非常非常好, 比其react來說, 提供了更人性化,更多的built-in function, 而且更高層的抽象, 但現在還沒有正式發布呀 :D


angular1.x用了一段時間,2.0出來後看了些資料,雖然沒有正式發布,但是還是非常期待


據說2.0基本上顛覆了1.x的大部分東西。不如作為兩個框架來比較好些。


一個能自我革命的框架還是值得把玩的


推薦閱讀:

Web 前端開發有哪些痛點?各大公司是如何解決或緩解的?
如何評價 Ant Design 分享的『字型大小選擇』背後的數學/物理規律?
react真的好用嗎?
Apache2 協議中的專利條款和 Facebook 的 BSD 協議附加的專利條款有什麼本質區別?

TAG:前端開發 | MVVM | AngularJS |