在什麼場景下,選擇 AngularJS 比其他前端框架更好?

大家都說要根據業務和場景來選擇框架。我想問一下,有沒有什麼場景下,AngularJS 比其他框架更好呢?因為大家都說 AngularJS 快要過時了,所以有此一問,難道 AngularJS 現在一點優勢都沒有了嗎?


AngularJS通常是指Angular 1,而Angular 2基本上都直接叫Angular了,因為它的默認語言變成了TypeScript,而且支持Dart和ES6。

完整的答案請看我以前寫的一篇文章:我為什麼選擇Angular 2?

簡要來說,Angular的主要優點包括:

一、整合性

你不需要費心費力的去找全家桶,也不用擔心學的東西很快就過時。Angular本身整合了大量最佳實踐和較新但穩定的技術,基本上照著一套文檔走下來就能達到中級。

二、跨平台

同一套代碼你能用在很多場景下,比如要支持PC Web、移動Web、移動Hybrid App、移動Native App、桌面應用等多種形態,只要一套TypeScript代碼就夠了。

三、後端背景程序員的首選

如果你有後端背景(以及Android背景),那麼Angular可以說是不二之選。它的編程模型和很多核心概念都是來自後端領域的。比如:MVVM、服務、依賴注入、TDD等,還有來自TypeScript的類、介面、裝飾器(註解)等。從一個高級後端轉型成高級Angular程序員並不是難事。

四、高度工程化開發

Angular 2開發組是一個以Google程序員為核心的大型社區組織,經歷了兩年半的開發,並且收到了很多來自社區的反饋。在開發中,他們一向堅持嚴格的代碼標準,並且在正式發布後,承諾今後將一直遵循semver,並提供可預測的升級路徑。

其他還有很多,就不一一細說了。


我就說Angular1:當然是有很多很多表單(&)的應用了!雙向數據綁定 + ng-required + ng-minlength... + $validators + filter + ng-if + ... 簡直就是專門為做form定製的好嗎?別跟我說什麼Redux,Flux……給你一個星期要做出來20+個表單然後客戶站在你椅子後面催問ETA你跟他講唯一狀態樹,單向數據流,函數式編程?真不如Angular1+Bootstrap搞定!


angularjs不談,但angular2 這個東西絕對是2017年的爸爸級框架。太優雅了。學習成本(很貼近原生理念)很低開發效率很高。

現在就國外火,因為還沒有壓制性的案例出來,但估計17年初,material2框架開發完善,有了這庫做最佳實踐,大家就能知道ng2但表達力和開發力是有多恐怖了。

但是這些大框架react或者angular,他們的編譯速度真的是需要好好改進一下了,即便是模塊 熱重載,也是很花時間的。這點直接決定了生產力。雖然我放到服務端編譯了,但也就那樣…

所以題主問什麼場景會比較好,我的回答是,明年年初後有一個完善的包含豐富組件的官方UI庫出來後並且同期pwa理念完全整合入官方angular-cli中後,並且你家應用的不考慮低端瀏覽器的情況下,用ng2是絕對沒問題的。

但即便兼容性的顧慮,我依舊想說的手機版和後台版,就用ng2獨立開發吧,絕對不虧。


  1. 網頁界面交互特別多的時候,比如各種管理後台界面(大量表單和輸入輸出交互),一整坨數據丟給網頁,交互全部在網頁上搞定,然後又是一整坨丟給後台,不用考慮誰渲染誰判斷的問題。

  2. 以及電商系統的訂單確認界面(多種條件才能確定顯示誰不顯示誰還有下一步如何交互什麼的)


跟項目選型,和場景都無關。

最重要是要一個靠譜的前端leader帶你飛。


在你很喜歡而且很擅長的場景下(嘿),開玩笑的,MVVM框架在數據處理比較多且頻繁的場景下使用起來較為方便,如果使用過模板引擎應該知道,VM綁定比模板還要酸爽許多。ng1不用多說,現在來看已經不是最優選擇了,比較厚重,有很多後端的概念,比如注入,MVC分層等。另外,連官方都出了ng2,1應該並不受關愛了。至於ng2,如果喜歡TypeScript,肯定是首選。如果喜歡ES6的話,那更推薦React和Vue,我私以為ES6這種官方的標準一定是未來趨勢(哈哈),React和Vue其實很多地方很相似,Vue在很多地方有借鑒React。哈哈,聊到這了,我必須要暴露了,我是Vue的狂熱粉,沒啥理由,就中文文檔,學得快,哈哈哈(溜了溜了溜了)


巨型項目


內網管理系統,一堆表單,然後各種根據條件顯示隱藏控制項的,ngModel ngShow不要太爽


現在小項目或者快速原型會用a1開發,好處在於開發快也不用等待編譯,刷新頁面就行。

不過es6寫多了,就會覺得有些語法寫得不太方便。

根據項目選型就好。


推薦閱讀:

關於redux在項目運用中的一些問題?
Angular2 相比 React 技術棧有什麼具體的優勢?
前端框架有哪些典型問題?
很迷茫,不知道自己現在是要繼續學習 React.js 還是系統地學習 JS?
公司團隊有自己專職的UI設計師,但是前端團隊成員js能力薄弱,是否需要用bootstrap?

TAG:前端開發 | JavaScript | MVVM | 前端框架 | AngularJS |