03.08 前端選擇vue還是Angular4?

少年啊少年


實踐經驗表明,Vue在數據量很大的時候不好維護,所以對於大型項目,Angular4顯然更適合,但Angular比較複雜,還有面向對象、依賴注入、MVC等思想;如果由後端學過Java的人來做,應該也比較好上手;但是對於只學過前端的人來說,有一堆思想要領悟,上手比較慢;但Vue則相對簡單,Vue的好用之處大概就是,用下來你發現,div還是那個div,css還是那個css,js也還是那個js,只是組織的方式和配合他們的工具不同而已。

當前Vue的生態環境相較兩年前成熟了很多,相關工具、官方文檔和非官方文檔都很完善,社區也很活躍。越來越多的大公司已將Vue用於生產環境,github上現在也已經有數以萬計的跟Vue有關的開源項目了。因此,對於中小型項目,你完全可以放心地使用Vue來構建。

既然說Vue工具齊全,那我這裡簡單列舉幾個常用的工具吧:

  • vue-router:用於配置單頁面應用的組件和映射,使用的方式和ui-router類似,支持嵌套路由,正則匹配路由,參數傳遞,history模式

  • vuex:一個專門為Vue應用設計的 狀態管理模型和庫。它為應用內的所有組件提供集中式存儲服務,其中的規則確保狀態只能按預期方式變更

  • element:餓了麼出品,基於VUE的組件庫,開箱即用。

除了上述之外,還有webpack、axios、node等等工具可以用,且關於Vue的官方和非官方文檔都很豐富,完全可以快速上手。

最後,Vue跟微信小程序很像,而且美團還開源了mpvue,意味著你甚至可以直接使用Vue來開發小程序。等於說,你學會了Vue,不僅學會了前端,還學會了微信小程序,一舉兩得,豈不美哉?

以上就是我拙見,歡迎在評論區留言討論。


光聊科技


先說說兩個我都用過。選擇上看實際情況。

項目規模:

大的,複雜的,我推薦angular4,小的,輕的,我推薦vue

人員素質:

人多,推薦angular,更容易工程化,人少推薦vue,適合2-3個人的小團隊快速作戰,特種作戰。

業務需要:

個人覺得,商業應用類的,後臺管理類的用angular,如果做個小應用,或者嵌入app等,用vue。

原因分析:

學習曲線絕對的vue會比angular4平滑很多,這個不用解釋。量級上vue會更輕。

從框架的整體性上來說,angular4該有的全包了,類似mvc的架構,使從後端java轉前端的程序員學習成本大大降低。TypeScript的使用讓angular項目的規範性上了一個很高的等級,解決了很多以前框架的問題,也更像java。vue更像react,注重單個頁面的開發效率。

社群上,國內用vue的確實更多,vue在國內的發展比較好,人比較多,angular就差些,國外angular好些,vue相對弱勢。

vue有vue-cli,angular也有angular-cli,前期簡單使用是差不多的,angular-cli搭出來的項目更完整些。

相關的配套,我用的都不多。angular官網有推薦幾個ui套件,其他的我沒看過好的,而vue有幾個國內公司都推了相關的ui套件,例如vux,mintui等,可以選。


林松simon


從Angular2時代開始,前端開發就逐漸開始用用Angular了,當時全國都沒什麼人敢碰Angular2,多數開發者就靠著啃它源代碼中的註釋,熟悉了Angular2的用法,並在實用中,還給Angular2團隊提交bug。

但是現在,Vue的出現,讓很多還沒接觸Angular多久的開發者開始糾結,這兩個到底用哪個好?

用Vue還是用Angular?

因此,這裡提供給大家最實用的比較,幫助大家在Vue和Angular之間選擇。

先說結論:用 vue + es6。不要考慮Angular,它有2個致命問題,導致它並不適合實用。

我們分幾個關鍵方面來說:

功能上,vue其實和Angular幾乎一模一樣。

如果只看入門教程,很多人會覺得vue很簡單,angular強大而複雜。但我是先學的Angular2,再發現vue的存在,所以我直接深入了vue的文檔。

一旦深入就發現,vue其實提供了幾乎完全一樣的功能,當你要用到這些功能時,vue瞬間就會變得和Angular2~4一樣複雜。

原本,vue都是基於es5,視覺上,還會覺得vue和angular4區別挺大。現在vue2.5開始支持typescript,你去看看那個組件編寫方式,幾乎就和angular4一模一樣了。

學習曲線上,vue入門容易,深入下去和angular4幾乎一樣。

vue最大的成功之一,就在於他的文檔由淺入深,不需要立馬知道的信息,入門教程暫時不提,從而降低上手門檻。

而angular的教程,一上來就是cli, npm, typescript,一大堆東西砸到你面前,每個東西他都要提一大段,連組件的理念,都要講半天,教程門檻,一下子就被拉高了。

以遊戲打比方,level 1的你進入遊戲,vue給你level2的對手,然後level4, 6, 8 逐漸提升。

而angular是,直接拉你到38級的boss面前,告訴你這就是你以後要面對的,並且講一大堆,你需要做哪些準備。講完了,讓你現場練級,直接打倒這個boss,從1級瞬間跳到38級。

而vue之所以教程能如此簡單,因為他基於es5,開頭可以不提組件理念,不提typescript,照樣能用。Vue的typescript支持,都沒放在教程正文提,幾乎算是在附錄提了下。

因此,入門教程的複雜性,決定了angular的人氣無論如何不可能和vue比。

運行速度上,差不多,可以無視區別。

兩者的性能,都比 react 和 angular 1.x 好很多,而兩者之間,雖然理論有差異,但用戶角度很難區別,所以這個不用太多考慮。

運行庫尺寸上,vue完勝,angular過於笨重。

但vue現在也有越來越重的趨勢。

angular壓縮後168kb,真的太笨重了!而vue 早期壓縮後不到50kb,但現在vue開始支持typescript之後,有越來越大的趨勢,最新版壓縮後已經到了89kb,也開始有點重了。

調試和維護上,angular比vue更難調試;

vue比angular更難維護。

angular代碼很規範,很好維護和審查,但它在控制檯的報錯信息太差了,經常看不出到底問題在哪,導致調試非常辛苦,有時候可以說是痛不欲生,尤其是,這個問題不是你可以解決的,除了提交建議,你沒有什麼好辦法。

而vue基於es5的語法實在是很混亂,兼容es5看似讓vue好上手,但用起來全是坑。光是那個{}套{},就暈死你。但這個問題,是可以靠使用es6規範迴避掉一部分的。

另外,調試這個問題,由於angular用typescript+webpack封裝,導致本來就很難調試了,控制檯報錯再差一點,真的很痛苦。

而vue在開發階段,其實是可以直接用es6,而不用typescript和webpack的,這意味著,控制檯報錯將是最準確的原始出錯信息,能夠最快完成調試工作。這一點,angular是做不到的。

最後,開源庫的豐富程度:vue更豐富,但更混亂,尤其是那些es5寫的庫。

angular4少很多,但更清晰,沒有es5~6的跨度問題。

vue的熱門庫、新開源庫,很多陸續轉為es6了,但更多庫還沒轉。你有很高概率會面對那些庫,而且vue存在從0.x到1.x再到2.x的遷移問題,所以你多少是要受點罪的。

而angular4其實並不熱門,提到的人多,去用的人少得可憐,所以開源庫也不多。你有很高的概率,需要去找普通js庫,然後自己改造成angular4的組件。

這些就是最明顯的比較了。

但是我們開發最終放棄了angular,關鍵原因還是在於:

難調試+笨重。

這兩點幾乎給angular判了死刑。本人在深知angular4的優點基礎上,依然選擇扔掉它。然而,es5這個大坑我們是不想再跳了,因此,vue+es6成了最完美的選擇:

既享受了類似angular4的功能和規範,又避免了笨重和調試問題。

未來:理想情況是,兩者區別會越來越小,最終感受不到區別。不理想情況是,angular被淘汰。

如今,一旦啟用typescript,vue和angular的區別就真的很小了。

因此,如果哪天angular的調試信息更加準確有效,而且尺寸降下來(或vue尺寸繼續加大),這兩者的區別將會小到可以忽略。但如果angular做不到,則早晚要全面輸給vue而被淘汰。

從前端的歷史發展來看,新框架迅速流行,然後迅速被淘汰,週而復始。因此經驗豐富的團隊對前端框架都比較避諱,更願意選擇輕量的第三方庫,而不選擇大而全的框架。

你看react和angular今天很火,但react不是原生Html而是寫模版,而angular大而全而笨重,都屬於歷史長河中很容易流行幾年,然後被淘汰的框架類型。雖然他們有大公司支撐,生命週期會更長,但排除大公司因素,這種框架我們還是要儘量避免。

目前,我們判斷,angular比較適合:公司內部項目,或面向對象團隊轉型全棧開發。

這種情況下,團隊深知面向對象、代碼規範的好處,並且沒有es5標準的包袱,直接從typescript入門。雖然,調試的坑依然還在,但其他方面,則好很多。

不然,就像開頭的結論那樣:vue+es6,是最佳選擇。別用es5,其中的苦,用過都知道。


代碼院


用什麼框架合適還是要根據具體業務。一般來說,vue適合體量小的個人項目或中小型項目;react和angular適合體量大、數據複雜的大中型項目。對學習曲線而言,vue無疑是最平緩的,三大框架中最容易上手。react和angular就學習成本來說遠遠大於vue。從文檔的完整性和可閱讀性來說,由於vue是國人寫的,文檔和操作習慣更加符合國人思維,而react和angular的文檔由於是英文,會造成一定的閱讀障礙。

跨平臺開發使用vue和react比使用angular更多一些,因為這些框架都對跨平臺的支持較為友好。雖然vue出來的時間比react和angular晚,但發展到現在使用vue的中小企業非常普遍。

嚴格來說,vue是mvvm中的v層,是一個類似於jquery的工具庫,而angular則是mvvm框架。另外,vue的雙向邦定是通過數據劫持結合發佈者-訂閱者模式的方式來實現的,基於 getter/setter實現數據劫持,angular用的是髒檢查機制。因此,普遍認為vue在性能上更優於angular。

vue的文檔上寫了與其他框架的對比,答主可以參考。鏈接如下:

https://cn.vuejs.org/v2/guide/comparison.html

另外github上也有三大框架各方面的詳細對比,有興趣的可以找來看看。我的頭條號後續也會推送前端三大框架的方方面面的對比這一文章,感興趣的可關注自取。


程序猿猩球


其實現在vue在學習曲線上已經沒什麼優勢了,我認為vue現在唯一的優勢就是中文文檔。如果是做單頁應用,項目有一定的複雜度,其實最省心的選擇是angular,angular的文檔是這幾個框架中最完備的,而且angular cli是真正能提高開發效率的東西。

angular在代碼組織上比較清晰,難上手的地方可能是rxjs的部分。以前vue更接近angularjs;現在,vue和react的相似度更高一點,這倆我感覺沒什麼明顯的孰優孰略,vue比react好的地方是官方提供了狀態管理vuex,可以少折騰。

我自己的實踐經驗,在angular和react之間選的話,我會選angular;在vue和react之間選的話,我會選vue。


geyall


你需要考慮的應該是哪一個開發週期短,人員好招,維護成本低,而不是哪個更優秀。


我的貓叫金針菇


自己寫!用jq


沅來是澧


大道至簡。


玉漱聆風


我求求你們不要再黑蔡徐坤了好嗎?他是我朋友的救命恩人啊,上次我同學出了車禍,成了植物人。醫生都放棄了,都說別救了。可那天在病房,電視上在播蔡徐坤打籃球的視頻,我朋友硬是從昏迷中醒來把電視給關了!!!


長草顏糰子2


所有框架理論上都能做大型應用,只是看框架成熟度完善度,目前vue已經是最大的github前端框架,成熟度和完善度毋庸置疑,這就好比java用的人那麼多為什麼還被c++的人看不起,因為簡單,但就不一定在某些領域java就差了,況且在前端vue甚至沒有什麼太大的問題,在開發業務上最快的絕對是vue,做架構vue也有很好的擴展

甚至也有人提到不用框架,如果讓開發變得簡單也是個問題的話,那我無話可說

前端為什麼火,你以為前端還能像後臺一樣衍生出那麼多技術嗎,大數據,人工智能?無非是頁面的效果和業務的呈現,一個前端項目真的需要十個人甚至更多人?3個前端撐死做一個大型項目了,完全可以應對10個+後臺,再多都是湊人數,用框架只有一個目的就是簡單方便,把東西複雜化的人我一直都很討厭,不明白是秀還是裝逼,目前vue的開發效率甩angular,react幾條街,優選vue絕對不是大型和小型項目決定的


分享到:


相關文章: