实用比较,帮你决策到底选择Vue还是Angular4、5
本人從Angular2時代開始用,當時全國都沒什么人敢碰Angular2,我們就靠著啃它源代碼中的注釋,熟悉了Angular2的用法,并在實用中,還給Angular2團隊提交bug。
?
因此,這里提供給大家最實用的比較,幫助大家在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,其中的苦,用過都知道。
原文發布時間為:2018年01月09日
原文作者:butaixianran?
本文來源:開源中國 如需轉載請聯系原作者
總結
以上是生活随笔為你收集整理的实用比较,帮你决策到底选择Vue还是Angular4、5的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 据说这份高考卷,只有程序员能得满分!
- 下一篇: VBS 学习
