1. 程式人生 > >前端開發實用比較,一篇文章告訴你到底是用Vue還是用Angular4、5?

前端開發實用比較,一篇文章告訴你到底是用Vue還是用Angular4、5?

從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,其中的苦,用過都知道。

本次給大家推薦一個免費的學習群,裡面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。
對web開發技術感興趣的同學,歡迎加入Q群:582735936,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。
最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。