你需要升級到 Angular 2 嗎?
在過去的一年中,Angular 2 團隊一直都十分忙碌。事實上,在 Angular 2 發布之前的兩年,整個 Angular 社區都是極其忙碌的。第一個預發版本 (RC) 已經在五月初發布了,緊接著會有更多的 RC 陸續發布直至版本接近穩定。而 最新的版本 RC4,將會在 6 月 30 日左右發布。
我們是否應該盡快升級到 Angular 2,還是說 Angular 1 將仍然能和其他引人矚目的框架或者庫如 React 一起向前邁進?我們接下來聊聊這個話題。
移動端優化
讓我們從 Angular 2 主頁開始。你會留意到主頁上有這么一句話:“一個框架。移動端與桌面端。”這清晰地證明了 Angular 2 將作為一個移動端優先的框架服務以支持移動應用的開發。
Angular 2 針對移動端優化了性能,提升了內存的效率以及節省了 CPU 周期。框架的最新版本支持在現代智能手機和平板設備上的更復雜的觸控和手勢事件。最近 Meteor 的基準研究 表明 Angular 2 在面向數據庫的測試中比 React,Blaze,以及最新版本的 Angular (v. 1.4.2) 都要更快。此外,Angular 2 還會支持原生的桌面應用,包括 Windows,Linux,以及 Mac。
TypeScript 支持
大快人心:Angular 2 將完全擁抱 Typescript。對于那些不熟悉者而言,TypeScript 基于你所認識的 JavaScript 但是結合了一系列額外的工具使你能夠重構代碼,用現代的 JS (ECMAScript 2015) 寫代碼,以及取決于瀏覽器的需求編譯為之前的版本。另一個重要的方面在于 IDE 的整合,這使得你可以更容易地在大規模項目中重構你的整個代碼庫。在建的代碼補全工具節約了你在查閱個別使用庫的功能中的時間。如果你對于 Typescript 感興趣的話,從它的 文檔 開始是個不錯的選擇。
Angular 2 的開發者能夠享受到 TypeScript 的所有功能以及庫,通過 TypeScript 的支持,整合例如 MongoDB 類似的數據庫接口將變得簡單起來。對于那些已經使用了 TypeScript 的庫例如 React 而言,開發者也可以無縫地在 Angular 2 項目中實現。
模塊化開發
如何加載模塊或是選擇 Require.js 還是 WebPack 在 Angular 1 中一直是讓大家頭痛的事情。幸運的是,在新發布的 Angular 2 中這些選擇被徹底移除,以規避低效的模塊從而使性能提升。Angular 2 還集成了 System.js —— 一個通用動態模塊加載器,提供了加載 ES6,Common 和 AMD 模塊的環境。
$scope 走開, 組件過來
Angular 2 徹底擺脫了控制器和 $scope。你可能想知道你要怎么把你的主頁縫在一起!不用擔心 —— Angular 2 使用了組件作為一種更簡單的方式來構建復雜的 web 應用和頁面。
Angular 2 使用的是指令(DOMs)和組件(模板)。簡單地來說,你可以構建你個人的組件類型,作為在你的頁面中獨立的一個部分。指令在 Angular 1 中是至關重要的部分,為了把它在頁面構建中的強大性擁入懷中,它也被帶到了 Angular 2 里。而組件則是高度功能化和可定制化的指令,它可以用于構建和指定隨同模板的類型,選擇器和視圖。
通過這些改變,Angular 2 將能夠提供更好的功能以及讓你更容易地從草稿開始建造你的 web 應用。Angular 2 組件使得我們可以寫出不會干涉除了組件自身以外的代碼塊的代碼。
原生移動開發
Angular 2 更面向框架。這意味著你為了移動設備所寫的代碼需要通過使用一個框架例如 Ionic 或者 NativeScript 來轉換。
如果性能是你的主要考慮對象,這可能會引起矛盾,但是 Angular 2 實際上在代碼結構的部分表現得更為出色。獨立的代碼庫和技能組能夠被用在構建大型代碼構架上,以及通過框架(例如,你猜猜,Ionic 或者 NativeScript)的整合,伴隨著你的原生應用運行的形式,你獲取了大量更靈活的空間。
代碼語法的轉變
Angular 2 在語法使用中加入了更多的吸引人的特征。其中包括了(但不限于)改變路由工作的方式,通過屬性輸入改善了數據綁定,改變了指令語法的表現,以及最后,改善了本地變量被使用的方式。
這里有許多微小的改動。雖然微小,但卻完全至關重要的。再次重申,我推薦直接閱讀 Angular 2 的官方文檔來獲取更多細節以及給自己一個機會測試自己是否真的喜歡 Angular 2。
最后的見解
很多 web 開發社區已經從討論 Anuglar 1 轉移到只作為 單獨的 Angular 2 社區 而服務。顯然現在開始使用 Angular 2 還不是太晚。現如今外界存在著大量優秀的框架。React 可能更擅長于處理性能方面的問題,但是 Angular 2 所專注的是開發過程的更深層面,尤其是構建大型代碼庫。此外,為 Angular 1 工作的團隊同樣也為 Angular 2 工作,這可能會帶給我們額外的熟悉感。
在選擇任何框架之前,最好列出與項目相關聯的目標以及重要的因素的可靠列表。當需要作出選擇時,你可能做的比使用 Angular 2 來開始你的新項目來的更糟糕。
來自:http://www.zcfy.cc/article/do-you-need-to-upgrade-to-angular-2-the-media-temple-blog-1045.html