怎麼樣看待AngularJS從1升級到2的不兼容問題?

怎麼樣看待AngularJS從1升級到2的不兼容問題?


這個升級,實際上是對未來標準的迎合,這些標準會導致幾乎所有已有組件化導向的框架或庫都面臨顛覆性革新。既然將來都要變,長痛不如短痛,人都是要向前看的,毛主席教導我們,革命不徹底,勞動人民就要吃兩茬苦,受兩茬罪。

另外有個問題可能很少人想,那就是,迎合這些標準之後,這些標準還會不會變?答案是顯然的,這就很痛苦,所以我們要想辦法,把儘可能多的東西搞得不變,哪些可以不變呢,那就是業務邏輯,這些東西如果我們用框架無關的標準的es代碼寫,以後ui層換了也能盡量小的代價升級,所以ng2裡面使用註解,把與框架相關的東西都放這個上,為的就是不影響主體邏輯的復用。

不要指望ui層幾年內能穩定,界面一定是改動最頻繁的,甚至css支持度好一些,都能讓你把html少套幾層,所以模板層語法的變更影響並不大,反正界面代碼都是一直改的命。

mvvm才是展示層的王道,這是在這個變來變去的世界中,能保留業務積累最多的方案了。


我覺得這個不兼容變更是合理的,與其說Angular 2是Angular.js1.x的升級版,不如說它是一個新框架,既然是一個全新的框架,何必要兼容Angular.js 1.x呢?只是背後的開發團隊一致而已。

以上只是抖機靈....

樓上 @徐飛 也說了,Angular 2 是對未來標準的迎合,而且Angular團隊為了解決1.x的種種不足,所以必須要不兼容,為了達到 易用性,性能提升、移動端、支持Web Components 等等,可能1.x版本就不是為了MVVM框架而設計的,底層需要徹底的變更,既然要徹底的變更,所以就有了不兼容。

我覺得Angular 2 應該是更易學,更簡單了。至於原有的系統需要升級到2.0,我覺得現在完全不必要擔憂。

1. 因為到Angular 2正式在項目中使用的時候,估計是1-2年以後,或者更久,那是很多現有的Angular1.x項目未必還在(哈哈,勿噴);

2. Angular1.3版本在Angular2出來後官方會一直維護修復到1-2年;

3. 大多數產品和項目UI變化基本上一年一變或者多變(如果一致不變,基本上沒有必要升級了),使用了Angular.js後業務邏輯的代碼基本上不會和UI耦合太多,所以要升級也並不是完全不可能。

4. 我相信到時候,Angular團隊和社區一定會想盡一切辦法讓Angular1.x的朋友完美過度升級的,現在擔心這個問題,太早,還是把眼前的BUG修復了再說吧!


怎麼看待IE 7、8、9、10、11 兼容 IE 6 的問題?

微軟說,媽蛋,我還是開發一個新的瀏覽器 Spartan 吧(其實吧,也是原來引擎的一個 fork 版本,花費很多天刪除兼容代碼而已)!

"AngularJS從1升級到2的不兼容" 說明一個問題,Angular 1 太不成熟了,實在修補不下去了,不成熟到要翻天覆地的從骨子裡改。


感覺Angular走得太超前了,不過走在瀏覽器標準統一之前也是好的


推薦閱讀:

為什麼window.undefined要比undefined耗時?
阿里搶月餅的js代碼是如何實現的?
前端開發應更多地使用多層嵌套對象的結構,還是拍平數組進行引用的結構?
Node.js的學習,是在windows下進行還是Linux下進行更好?

TAG:JavaScript | AngularJS |