新聞中心
在全球大范圍看,React和Angular依然遙遙領(lǐng)先,Vue.js這位后起之秀還需努力做到全球化!

為了保證可讀性,本文采用意譯而非直譯。另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。
JavaScript框架的更新節(jié)奏可以說(shuō)日新月異,我們可以看到Angular不停地在發(fā)布新的版本,ReactJS和Vue.js也不甘落后。我們來(lái)看看最近5年Google的搜索趨勢(shì)。圖中藍(lán)色、紅色和黃色分別表示Angular、React和Vue.js。
在2013-2014年間,React和Angular的熱度略微有些許差別。之后,它們之間的差距逐漸拉大。從2016年中期開(kāi)始,React開(kāi)始增長(zhǎng),逐漸接近Angular的熱度。Vue.js框架一直處于墊底狀態(tài),不是很流行。不過(guò)呢,也有逐漸轉(zhuǎn)熱的趨勢(shì),我相信它會(huì)越來(lái)越熱門。
總的來(lái)說(shuō),React和Angular一直保持著相對(duì)一致的發(fā)展步調(diào)。如果要我嘗試做個(gè)預(yù)測(cè),那么React會(huì)持續(xù)升高,Angular有所下滑。Vue.js依然不是很明晰,不過(guò)由于其框架的簡(jiǎn)潔性,發(fā)展也不錯(cuò)。
我們同時(shí)也分析了世界范圍內(nèi)前端招聘對(duì)框架要求的數(shù)據(jù)。我們從Indeed.com獲得超過(guò)60,000工作信息,得到如下的分布圖。
根據(jù)我們的分析,我們決定分享我們對(duì)每一個(gè)框架的優(yōu)點(diǎn)和缺點(diǎn)的理解,希望可以幫助專業(yè)人士或則工程師做框架選型。
Angular
Angular是一個(gè)從2009年就開(kāi)始推出JavaScript MVVM框架,對(duì)于構(gòu)建高度可交互的網(wǎng)頁(yè)應(yīng)用非常方便。
優(yōu)點(diǎn)
- 新特性:RXJS,快速編譯(3秒內(nèi)),新的HttpClient;
- 詳細(xì)的文檔幾乎涵蓋了所有必須的信息,你甚至不需要向同事咨詢。不過(guò),你需要更多的時(shí)間去學(xué)習(xí);
- 數(shù)據(jù)雙向綁定,可以減少出錯(cuò)的風(fēng)險(xiǎn);
- MVVM(Model-View-ViewModel)使得開(kāi)發(fā)者可以針對(duì)同一個(gè)App模塊同時(shí)開(kāi)發(fā);
- 依賴注入使得模塊化和模塊中組件引入更加方便;
缺點(diǎn)
- 與生俱來(lái)的復(fù)雜的語(yǔ)法;好在Angular 5使用TypeScript 2.4,已經(jīng)簡(jiǎn)單多了;
- 遷移問(wèn)題:從低版本升級(jí)到新版本的時(shí)候,不兼容導(dǎo)致遷移成本高。
使用Angular 5的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。
ReactJS
ReactJS是一個(gè)Facebook在2013年開(kāi)源的JavaScript庫(kù),可以非常方便地構(gòu)建大型網(wǎng)頁(yè)應(yīng)用。
優(yōu)點(diǎn)
- 易于學(xué)習(xí):由于語(yǔ)法十分簡(jiǎn)潔,和Angular相比,React要容易得多。工程師只需要重溫一下HTML的基本知識(shí)就足夠。根本不需要像Angular一樣,還要深度學(xué)習(xí)TypeScript。
- 高度的靈活性;
- 虛擬DOM將HTML,XHTML、或則XML的文檔格式化成樹(shù)形結(jié)構(gòu),這樣瀏覽器可以更容易理解;
- 結(jié)合ES6/7,React可以很容易寫出各種酷炫代碼;
- Downward數(shù)據(jù)綁定,也就是說(shuō)父節(jié)點(diǎn)的數(shù)據(jù)不會(huì)受到孩子節(jié)點(diǎn)的影響;
- 100%的開(kāi)源,每天都有來(lái)自全世界無(wú)數(shù)的開(kāi)發(fā)者的更新和改進(jìn);
- 絕對(duì)的輕量級(jí),因?yàn)閿?shù)據(jù)處理既可以在用戶端,也可以在服務(wù)端;
- 版本遷移非常容易,F(xiàn)acebook提供了”codemods”來(lái)自動(dòng)化這一過(guò)程。
缺點(diǎn)
- 缺乏官方文檔:ReactJS的快速開(kāi)發(fā)使得文檔的缺乏,眾多開(kāi)發(fā)者的維護(hù)也使其缺乏一個(gè)系統(tǒng)化的思路;
- React因?yàn)樘`活增加了決策成本而不好使;
- 需要很長(zhǎng)的時(shí)間去掌握,因?yàn)镽eactJS需要你對(duì)如何將UI和MVC框架整合有一個(gè)足夠深度的理解。
使用ReactJS的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。
Vue.js
Vue.js是一個(gè)2013年誕生的前端框架,非常適合用于構(gòu)架非常靈活的UI和復(fù)雜的單頁(yè)面應(yīng)用。
優(yōu)點(diǎn)
- 強(qiáng)化的HTML,也就是說(shuō)Vue.js有著很多和Angular相似的特點(diǎn)。
- 詳細(xì)的文檔,Vue.js有著超級(jí)友好的文檔,開(kāi)發(fā)者可以快速的學(xué)會(huì),這將會(huì)節(jié)省很多時(shí)間;
- 可適用性:你可以很快地從其它框架轉(zhuǎn)移到Vue.js,因?yàn)樗虯ngular以及React都有一定的相似性;
- 非常棒的整合性:Vue.js可以同時(shí)用于單頁(yè)面應(yīng)用和更加復(fù)雜的網(wǎng)頁(yè)應(yīng)用。主要在于你可以用它編寫很小的可交互部件,然后可以很容易地整合到現(xiàn)有的項(xiàng)目中而不會(huì)影響到整個(gè)系統(tǒng);
- 可擴(kuò)展性:Vue.js可以用于快速開(kāi)發(fā)大型復(fù)用模板;
- 體積?。篤ue.js只有20KB左右的大小,使得其速度和靈活性相對(duì)于其它框架都好不少。
缺點(diǎn)
- 資源匱乏:Vue.js依然在整個(gè)市場(chǎng)中只占有很小的比例,所以相應(yīng)的資源、知識(shí)要少很多;
- 靈活性帶來(lái)的風(fēng)險(xiǎn):有時(shí)候,將其整合到大型項(xiàng)目的時(shí)候會(huì)有一些問(wèn)題,但是你不見(jiàn)得能夠找到解法;
- 來(lái)自中國(guó):許多的元素和描述依然使用中文。這對(duì)于開(kāi)發(fā)中會(huì)引入一些復(fù)雜性,好在越來(lái)越多的相關(guān)資料已經(jīng)被翻譯成英文。
使用Vue.js的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。
結(jié)論: 對(duì)于一個(gè)真正的工程師,選用什么框架并沒(méi)有多大的區(qū)別,因?yàn)槟阒恍枰〞r(shí)間去學(xué)習(xí)和熟悉它們。我們公司里面有精通ReactJS和Angular2/4/5的專家,Vue.js也即將被列入。每一個(gè)框架都有各自的優(yōu)點(diǎn)和缺點(diǎn),所以主要是看自己的應(yīng)用場(chǎng)景下哪個(gè)框架最適合。
關(guān)于Fundebug
Fundebug專注于JavaScript、微信小程序、微信小游戲,Node.js和Java實(shí)時(shí)BUG監(jiān)控。
自從2016年雙十一正式上線,F(xiàn)undebug累計(jì)處理了5億+錯(cuò)誤事件,得到了眾多知名用戶的認(rèn)可。歡迎免費(fèi)試用!
本文標(biāo)題:ReactJS,AngularJS,Vue.js優(yōu)劣對(duì)比分析
網(wǎng)頁(yè)路徑:http://m.fisionsoft.com.cn/article/cdieedg.html


咨詢
建站咨詢
