使用UpgradeAdapter將angular 1 升級到 2 的開發體驗如何?

最近看到一篇文提到angular 2 提供了UpgradeAdapter模塊用於讓angular 1 升級到 2,用於解決之前angular 1 和 2 不能漸進升級的問題。查了下UpdradeAdapter的相關內容,中文內容基本沒找到,爆棧上內容也偏少。

所以,想問下angular 2這個升級模塊在開發中體驗如何?

相關鏈接:

1、水文:我為什麼選擇Angular 2?

2、UpgradeAdapter模塊說明:Upgrading from 1.x

3、過時的老問題:怎麼樣看待AngularJS從1升級到2的不兼容問題? - JavaScript

4、git上使用UpgradeAdapter的項目:GitHub - pcuci/ngupgrade: Hybrid Angular 1+2 app using UpgradeAdapter


不會太好。並不是說 UpgradeModule 本身設計的不好,而是真正適合用 UpgradeModule 來漸進升級的場景太少。

需要使用 UpgradeModule 來將 AngularJS 應用升級為 Angular 應用的話,應當滿足:

  • 應用本身的代碼量足夠豐富(否則直接重寫就好了);
  • 應用本身仍然具備維護價值(否則老項目放著不動就好了);
  • 開發人員對 AngularJS 足夠了解(否則連 AngularJS 1.5+ 的組件化版本都上不去);
  • 開發人員對 Angular 足夠了解(否則不正常工作連是哪邊的問題都不知道);
  • 應用對啟動時間的要求不是太高(接近 200K 的 AngularJS + Angular 運行時);
  • 良好的組件化和模塊化設計能力(單一框架中設計的再爛也能湊出來能跑的方式);

最重要的一點也就是,不要試圖通過 UpgradeModule 來學習 Angular,而是要在已經足夠了解 Angular 的情況下再來使用 UpgradeModule 升級 AngularJS 應用。

但是,有多少公司能提供這種條件呢?(誰來付錢?)

所以,即便作為 Bridge 而言從技術角度來說 UpgradeModule 已經足夠完美,但是實際上考慮到工程因素的話未必具備太高的實用性。尤其是結合我國國情的時候。


問題不在adaptor,而在於原有代碼質量。如果原有代碼只是披著ng1皮的jquery,那麼啥也幫不了你。如果原本代碼質量就很好,那就很容易升級。甚至就算是改寫成react都不會太難。


推薦閱讀:

TAG:使用體驗 | MVVM | 前端框架 | AngularJS | Angular? |