ReactJS、Angular5、Vue.js?—?2018年該怎么選?

本文主要介紹三大主流框架優(yōu)缺點,給架構(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個工作崗位的分布:

Angular?5的優(yōu)缺點

Angular是一個完全采用JavaScript的MVVM框架,創(chuàng)建于2009年,非常適合構(gòu)建高度交互的web應(yīng)用程序。

Angular 5的優(yōu)點:

?新特點如增強的RXJS,更快的編譯(3秒內(nèi)),新的HttpClient?launch。

?文檔詳細,包含單個開發(fā)人員所有必要的信息,而無需詢問他的同事。然而,這需要更多的時間來學(xué)習(xí)。

?使能應(yīng)用程序單一行為的雙向數(shù)據(jù)綁定,能最小化可能錯誤造成的風(fēng)險。

?MVVM (Model-View-ViewModel)使得開發(fā)人員可以使用相同的數(shù)據(jù)集在相同的應(yīng)用程序部分單獨工作。

?組件模塊化特點的依賴注入。

Angular 5的缺點:

?始于第一版的復(fù)雜語法,然而,相較而言Angular 5采用TypeScript 2.4是學(xué)習(xí)難度最小的。

?從舊版本遷移到最新版本時可能出現(xiàn)的遷移問題。

采用 Angular 5的公司: Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.

ReactJS的優(yōu)缺點

ReactJS 是2013年由Facebook開源的JavaScript庫,對于構(gòu)建數(shù)據(jù)經(jīng)常改變的大型web應(yīng)用程序非常有用。

ReactJS的優(yōu)點:

?容易學(xué)。React在語法方面非常簡單,因此更容易學(xué)習(xí)。工程師只需要回想一下他們的HTML寫作技巧就行了。不需要像在Angular中那樣深入學(xué)習(xí)TypeScript.

?高度的靈活性和最大的響應(yīng)能力。

?Virtual DOM (document object model)允許將HTML、XHTML或XML格式的文檔排列到一個樹中,在解析web應(yīng)用程序的不同元素時,該樹更容易被web瀏覽器接受。

?結(jié)合ES6/7, ReactJS?能夠以簡單的方式在高負載下工作。

?向下數(shù)據(jù)綁定,這意味著在這種數(shù)據(jù)流中,子元素不能影響父數(shù)據(jù)。

?100%的開源JavaScript庫,根據(jù)世界各地開發(fā)人員的貢獻,每天進行大量的更新和改進。

?絕對輕量級的,因為在用戶端執(zhí)行的數(shù)據(jù)可以很容易地在服務(wù)器端同時表示。

?版本遷移通常非常簡單,F(xiàn)acebook提供了“代碼模型”使大部分過程自動化。

ReactJS的缺點:

?缺乏官方文檔-超快開發(fā)沒有為適當(dāng)?shù)奈臋n留出空間,這有點混亂,因為許多開發(fā)人員在沒有任何系統(tǒng)方法的情況下單獨貢獻文檔。

?React是沒有見解的,這意味著開發(fā)人員有時有太多的選擇;

?需要很長時間才能掌握,這意味著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)缺點

Vue.js 是在2013年發(fā)起的 JavaScript 框架,它非常適合創(chuàng)建高度適應(yīng)性的用戶界面和復(fù)雜的單頁應(yīng)用程序。

Vue.js的優(yōu)點:

?授權(quán)的HTML。這意味著Vue.js具有許多與Angular類似的特性,這有助于優(yōu)化使用不同組件的HTML塊處理。

?詳細的文檔。Vue.js有非常詳細的文檔,可以加快開發(fā)人員的學(xué)習(xí)進度,并且僅使用HTML和JavaScript的基本知識就可以節(jié)省開發(fā)應(yīng)用程序的大量時間。.

?適應(yīng)性。它提供了從其他框架到Vue.js的快速切換周期,因為它和Angular、React在設(shè)計和體系結(jié)構(gòu)方面非常相似。

?很棒的整合。Vue.js既可以用于構(gòu)建單頁應(yīng)用程序,也可以用于更困難的應(yīng)用程序web界面。主要的一點是,較小的交互部分可以容易地集成到現(xiàn)有基礎(chǔ)設(shè)施中,而不會對整個系統(tǒng)造成負面影響。

?大規(guī)??s放。Vue.js可以幫助開發(fā)相當(dāng)大的可重用模板,根據(jù)其簡單的結(jié)構(gòu),無需為此分配額外的時間,即可制作這些模板。

?微小的尺寸。Vue.js以約20KB,保持其速度和靈活性,從而與其他框架相比可以獲得更好的性能。

Vue.js的缺點:

?缺乏資源。與React或Angular相比,Vue.js的市場份額仍然很小,這意味著在這個框架中的知識共享仍處于初始階段。

?過度靈活的風(fēng)險。有時,Vue.js在集成到大型項目時可能會遇到問題,并且仍然沒有關(guān)于可能解決方案的經(jīng)驗,但是它們肯定很快就會出現(xiàn)。

?缺乏完整的英文文檔。這導(dǎo)致了一些發(fā)展階段的部分復(fù)雜性,然而,越來越多的材料被翻譯成英語。

采用Vue.js的公司: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters.

結(jié)論

對于一個真正的工程師來說,選擇哪種框架并沒有本質(zhì)的區(qū)別,只是需要一些時間來適應(yīng)新的框架。在我們公司,我們用的最多的是react tjs和Angular 2/4/5,但Vue.js也在用。每個框架都有自己的優(yōu)缺點,這意味著在產(chǎn)品開發(fā)過程中,每個案例都應(yīng)該有一個正確的選擇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容