本文主要介紹三大主流框架優(yōu)缺點(diǎn),給架構(gòu)選型提供建議咐柜,源于耗叔在左耳聽風(fēng)專欄中推薦的一篇英文文章ReactJS vs Angular5 vs Vue.js?—?What to choose in 2018?兼蜈,耗叔在他的專欄文章中看好React和Vue。
JavaScript框架以極快的速度發(fā)展拙友,也就是Angular, ReactJS和Vue.js的版本會經(jīng)常更新为狸。首先,我們分析特定框架技能的全球開放崗位的數(shù)量遗契,下圖是Indeed.com?上超過60000個(gè)工作崗位的分布:
Angular?5的優(yōu)缺點(diǎn)
Angular是一個(gè)完全采用JavaScript的MVVM框架辐棒,創(chuàng)建于2009年,非常適合構(gòu)建高度交互的web應(yīng)用程序。
Angular 5的優(yōu)點(diǎn):
?新特點(diǎn)如增強(qiáng)的RXJS,更快的編譯(3秒內(nèi))漾根,新的HttpClient?launch泰涂。
?文檔詳細(xì),包含單個(gè)開發(fā)人員所有必要的信息立叛,而無需詢問他的同事负敏。然而贡茅,這需要更多的時(shí)間來學(xué)習(xí)秘蛇。
?使能應(yīng)用程序單一行為的雙向數(shù)據(jù)綁定,能最小化可能錯(cuò)誤造成的風(fēng)險(xiǎn)顶考。
?MVVM (Model-View-ViewModel)使得開發(fā)人員可以使用相同的數(shù)據(jù)集在相同的應(yīng)用程序部分單獨(dú)工作赁还。
?組件模塊化特點(diǎn)的依賴注入。
Angular 5的缺點(diǎn):
?始于第一版的復(fù)雜語法驹沿,然而艘策,相較而言Angular 5采用TypeScript 2.4是學(xué)習(xí)難度最小的。
?從舊版本遷移到最新版本時(shí)可能出現(xiàn)的遷移問題渊季。
采用 Angular 5的公司: Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.
ReactJS的優(yōu)缺點(diǎn)
ReactJS 是2013年由Facebook開源的JavaScript庫,對于構(gòu)建數(shù)據(jù)經(jīng)常改變的大型web應(yīng)用程序非常有用朋蔫。
ReactJS的優(yōu)點(diǎn):
?容易學(xué)。React在語法方面非常簡單却汉,因此更容易學(xué)習(xí)驯妄。工程師只需要回想一下他們的HTML寫作技巧就行了。不需要像在Angular中那樣深入學(xué)習(xí)TypeScript.
?高度的靈活性和最大的響應(yīng)能力合砂。
?Virtual DOM (document object model)允許將HTML青扔、XHTML或XML格式的文檔排列到一個(gè)樹中,在解析web應(yīng)用程序的不同元素時(shí)翩伪,該樹更容易被web瀏覽器接受微猖。
?結(jié)合ES6/7, ReactJS?能夠以簡單的方式在高負(fù)載下工作。
?向下數(shù)據(jù)綁定缘屹,這意味著在這種數(shù)據(jù)流中凛剥,子元素不能影響父數(shù)據(jù)。
?100%的開源JavaScript庫轻姿,根據(jù)世界各地開發(fā)人員的貢獻(xiàn)当悔,每天進(jìn)行大量的更新和改進(jìn)。
?絕對輕量級的踢代,因?yàn)樵谟脩舳藞?zhí)行的數(shù)據(jù)可以很容易地在服務(wù)器端同時(shí)表示盲憎。
?版本遷移通常非常簡單,F(xiàn)acebook提供了“代碼模型”使大部分過程自動化胳挎。
ReactJS的缺點(diǎn):
?缺乏官方文檔-超快開發(fā)沒有為適當(dāng)?shù)奈臋n留出空間饼疙,這有點(diǎn)混亂,因?yàn)樵S多開發(fā)人員在沒有任何系統(tǒng)方法的情況下單獨(dú)貢獻(xiàn)文檔。
?React是沒有見解的窑眯,這意味著開發(fā)人員有時(shí)有太多的選擇屏积;
?需要很長時(shí)間才能掌握,這意味著React JS需要深入了解如何將用戶界面集成到MVC框架中磅甩。
采用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft.
Vue.js的優(yōu)缺點(diǎn)
Vue.js 是在2013年發(fā)起的 JavaScript 框架,它非常適合創(chuàng)建高度適應(yīng)性的用戶界面和復(fù)雜的單頁應(yīng)用程序炊林。
Vue.js的優(yōu)點(diǎn):
?授權(quán)的HTML。這意味著Vue.js具有許多與Angular類似的特性卷要,這有助于優(yōu)化使用不同組件的HTML塊處理渣聚。
?詳細(xì)的文檔。Vue.js有非常詳細(xì)的文檔僧叉,可以加快開發(fā)人員的學(xué)習(xí)進(jìn)度奕枝,并且僅使用HTML和JavaScript的基本知識就可以節(jié)省開發(fā)應(yīng)用程序的大量時(shí)間。.
?適應(yīng)性瓶堕。它提供了從其他框架到Vue.js的快速切換周期隘道,因?yàn)樗虯ngular、React在設(shè)計(jì)和體系結(jié)構(gòu)方面非常相似郎笆。
?很棒的整合谭梗。Vue.js既可以用于構(gòu)建單頁應(yīng)用程序,也可以用于更困難的應(yīng)用程序web界面宛蚓。主要的一點(diǎn)是激捏,較小的交互部分可以容易地集成到現(xiàn)有基礎(chǔ)設(shè)施中,而不會對整個(gè)系統(tǒng)造成負(fù)面影響苍息。
?大規(guī)乃跣遥縮放。Vue.js可以幫助開發(fā)相當(dāng)大的可重用模板竞思,根據(jù)其簡單的結(jié)構(gòu)表谊,無需為此分配額外的時(shí)間,即可制作這些模板盖喷。
?微小的尺寸爆办。Vue.js以約20KB,保持其速度和靈活性课梳,從而與其他框架相比可以獲得更好的性能距辆。
Vue.js的缺點(diǎn):
?缺乏資源。與React或Angular相比暮刃,Vue.js的市場份額仍然很小跨算,這意味著在這個(gè)框架中的知識共享仍處于初始階段。
?過度靈活的風(fēng)險(xiǎn)椭懊。有時(shí)诸蚕,Vue.js在集成到大型項(xiàng)目時(shí)可能會遇到問題,并且仍然沒有關(guān)于可能解決方案的經(jīng)驗(yàn),但是它們肯定很快就會出現(xiàn)背犯。
?缺乏完整的英文文檔坏瘩。這導(dǎo)致了一些發(fā)展階段的部分復(fù)雜性,然而漠魏,越來越多的材料被翻譯成英語倔矾。
采用Vue.js的公司: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters.
結(jié)論
對于一個(gè)真正的工程師來說,選擇哪種框架并沒有本質(zhì)的區(qū)別柱锹,只是需要一些時(shí)間來適應(yīng)新的框架哪自。在我們公司,我們用的最多的是react tjs和Angular 2/4/5奕纫,但Vue.js也在用提陶。每個(gè)框架都有自己的優(yōu)缺點(diǎn)烫沙,這意味著在產(chǎn)品開發(fā)過程中匹层,每個(gè)案例都應(yīng)該有一個(gè)正確的選擇。