中文參考Google翻譯,讀著不暢請(qǐng)[參考原文]https://dzone.com/articles/reactjs-vs-vuejs-comparison-of-popular-frameworks
JavaScript越來(lái)越受歡迎,許多科技巨頭正在從中獲益。每天都會(huì)涌現(xiàn)出過(guò)多的框架和語(yǔ)言,我們無(wú)法跟上所有這些框架和語(yǔ)言。很難確定哪些值得關(guān)注。
快速React.js與Vue.js比較
| React | Vue | |
|---|---|---|
| 類型 | JavaScript庫(kù) | JavaScript庫(kù) |
| 適用于 | Web和Native的理想選擇 | 主要關(guān)注Web開(kāi)發(fā),但它是為了支持其他平臺(tái)的前進(jìn)而編寫的 |
| 開(kāi)發(fā)人員 | Facebook社區(qū)(由Jordan Walke創(chuàng)建) | Evan You |
| 首次發(fā)布 | 2013年3月 | 2014年2月 |
| 寫入 | JavaScript | JavaScript |
| 跨平臺(tái)開(kāi)發(fā) | React的React Native是一個(gè)成熟且廣泛使用的原生應(yīng)用程序平臺(tái) | Vue的Weex仍在不斷發(fā)展,旨在提供順暢的開(kāi)發(fā)體驗(yàn) |
| 學(xué)習(xí)曲線 | 陡峭的學(xué)習(xí)曲線,需要深厚的知識(shí) | 簡(jiǎn)單的學(xué)習(xí)曲線,基于HTML的模板使其熟悉 |
| 人氣 | React在GitHub上最熱門的Javascript項(xiàng)目列表中排名第二 | Vue.js排名第一,是2017年最時(shí)尚的項(xiàng)目,年內(nèi)在GitHub上添加了超過(guò)40,000顆星 |
| 可重用性 | 僅CSS | 最大可重用性 |
| 性能 | 同樣快速 | 同樣快速 |
| GitHub上的貢獻(xiàn)者 | 1201 | 189 |
| 模型 | 虛擬DOM(文檔對(duì)象模型) | 基于虛擬DOM HTML的模板 |
| 功能 | 可用作單頁(yè)面或移動(dòng)應(yīng)用程序開(kāi)發(fā)的基礎(chǔ) | 能夠?yàn)楦呒?jí)單頁(yè)面應(yīng)用程序提供動(dòng)力的Web應(yīng)用程序框架 |
| 簡(jiǎn)單 | React比Vue更復(fù)雜 | Vue比React更簡(jiǎn)單 |
| 值得注意的特性 | 使用道具進(jìn)行單向數(shù)據(jù)綁定有狀態(tài)組件虛擬DOM 生命周期方法 JSX(JavaScript XML) HTML以外的架構(gòu) | 基于HTML的模板反應(yīng)性組件(將整個(gè)應(yīng)用程序劃分為小型,自我包含,通??芍赜玫慕M件)轉(zhuǎn)換路由*集成 |
| Bootstrap應(yīng)用程序 | CRA(創(chuàng)建React應(yīng)用程序) | Vue-cli |
A Quick React.js vs Vue.js Comparison
| React | Vue | |
|---|---|---|
| Type | JavaScript Library | JavaScript Library |
| Ideal for | Both Web and Native | Primarily focused on web dev, but it was written to support other platforms moving forward |
| Developer(s) | Facebook Community(Created by Jordan Walke) | Evan You |
| Initial Release | March 2013 | February 2014 |
| Written-in | JavaScript | JavaScript |
| Cross-platform development | React’s React Native is a mature and widely used platform for native-rendered apps | Vue’s Weex is still evolving and aims to provide a smooth development experience |
| Learning Curve | A steep learning curve and requires deep knowledge | Easy learning curve, HTML-based templates makes it familiar |
| Popularity | React is ranked second on the list of hottest Javascript projects on GitHub | Ranked first, Vue.js wa the trendiest project in 2017, with more than 40,000 stars added on GitHub during the year |
| Reusability | Only CSS | Maximum reusability |
| Performance | Similarly fast | Similarly fast |
| Contributors on GitHub | 1201 | 189 |
| Model | Virtual DOM(Document Object Model) | Virtual DOM HTML-based templates |
| Function | Can be used as a base in the development of single-page or mobile applications | Web application framework capable of powering advanced single-page applications |
| Simplicity | React is more complex than Vue | Vue is simpler than React |
| Notable Features | *One-way data binding with props *Stateful components *Virtual DOM *Lifecycle methods *JSX (JavaScript XML) *Architecture beyond HTML | HTML-based template *Reactivity *Components (divide the whole app into small, self-contained, and often reusable components) *Transitions *Routing *Integrations |
| Bootstrap Application | CRA (Create React App) | Vue-cli |
JavaScript世界的發(fā)展速度比以往任何時(shí)候都快,作為一家軟件開(kāi)發(fā)公司,我們不能忽視這個(gè)時(shí)代最常討論的框架--React.js和Vue.js.因此,在React與Vue的比較中,我們將根據(jù)每個(gè)框架的重要優(yōu)缺點(diǎn),以及市場(chǎng)趨勢(shì)和見(jiàn)解,幫助您選擇最佳框架。我們擁有一批技術(shù)嫻熟的開(kāi)發(fā)人員,他們不斷更新Vue.js和React開(kāi)發(fā)的各個(gè)方面。
讓我們深入了解細(xì)節(jié):
在進(jìn)一步閱讀之前,請(qǐng)確保您清楚地了解React和Vue.js是什么。它們是高度重視且廣泛使用的JavaScript框架,用于界面設(shè)計(jì)。
什么是反應(yīng)?它為什么如此受歡迎?
React得到了Facebook社區(qū)的支持,使得構(gòu)建交互式UI變得非常容易。
React不是MVC框架
市場(chǎng)上有許多JavaScript MVC框架在性能和可靠性方面做得相當(dāng)不錯(cuò)。那么,為何React如此受歡迎?為什么有人會(huì)使用React而不是依賴其他一些MVC框架?
React是一個(gè)用于創(chuàng)建可重用且有吸引力的UI組件的庫(kù)。它非常適合代表經(jīng)常變化的數(shù)據(jù)的組件。使用React,您可以通過(guò)將其分解為組件而不是使用模板或HTML來(lái)構(gòu)建可重用的用戶界面。
學(xué)習(xí)一次,隨處寫作
React的官方網(wǎng)站提到了這個(gè)關(guān)鍵功能,它說(shuō)你可以使用React Native框架在JavaScript中構(gòu)建移動(dòng)應(yīng)用程序。
React還介紹了JavaScript XML或JSX的使用,它是JavaScript的語(yǔ)法擴(kuò)展。 React不一定需要JSX,但它在創(chuàng)建UI組件和調(diào)試時(shí)非常簡(jiǎn)單有用。
使用React.js的公司
Facebook,Instagram,Netflix,紐約時(shí)報(bào),雅虎,WhatsApp,Codecademy,Dropbox,Airbnb,Asana,微軟
Vue.js簡(jiǎn)介:漸進(jìn)式JavaScript框架
React和Angular是用于構(gòu)建Web應(yīng)用程序的兩個(gè)頂級(jí)JavaScript框架。
Vue.js是一個(gè)開(kāi)源JavaScript框架,能夠開(kāi)發(fā)單頁(yè)面應(yīng)用程序。它還可以用作Web應(yīng)用程序框架,旨在簡(jiǎn)化Web開(kāi)發(fā)。 Vue.js應(yīng)用程序開(kāi)發(fā)引起了全球開(kāi)發(fā)人員的極大關(guān)注,以構(gòu)建出色的Web應(yīng)用程序。
Vue或Vue.js是一個(gè)用于為Web構(gòu)建引人注目的UI的漸進(jìn)式框架。它最初于2014年由前Google開(kāi)發(fā)人員Evan You發(fā)布,他使用AngularJS并決定排除Angular框架的痛點(diǎn)并構(gòu)建輕量級(jí)的東西。
其受歡迎程度有很多原因,其中一個(gè)主要原因是它能夠在沒(méi)有任何操作的情況下重新渲染。它允許您構(gòu)建可重用,小巧但功能強(qiáng)大的組件,因此,它提供了一個(gè)可組合的框架,允許您在需要時(shí)添加組件。
使用Vue.js的公司
Facebook,Netflix,Adobe,Grammarly,Behance,Xiaomi,阿里巴巴,Codeship,Gitlab和Laracasts
React.js vs Vue.js:誰(shuí)贏了這場(chǎng)戰(zhàn)斗?
這兩個(gè)框架之間有許多相似之處,例如:
兩者都是為了使用根庫(kù)而構(gòu)建的。
React.js和Vue.js基于Virtual DOM模型。
這兩種工具都具有基于組件的結(jié)構(gòu)。
當(dāng)然,這兩種工具之間存在差異。每個(gè)框架都有自己的優(yōu)點(diǎn)和缺點(diǎn)需要考慮。讓我們一個(gè)一個(gè)地看看每個(gè)框架。
React.js的優(yōu)點(diǎn):
靈活性和響應(yīng)能力:它提供最大的靈活性和響應(yīng)能力。
虛擬DOM:由于它基于文檔對(duì)象模型,因此它允許瀏覽器友好地以HTML,XHTML或XML格式排列文檔。
豐富的JavaScript庫(kù):來(lái)自世界各地的貢獻(xiàn)者正在努力添加更多功能。
可擴(kuò)展性:由于其靈活的結(jié)構(gòu)和可擴(kuò)展性,React已被證明對(duì)大規(guī)模應(yīng)用程序更好。
不斷發(fā)展:React得到了Facebook專業(yè)開(kāi)發(fā)人員的支持,他們不斷尋找改進(jìn)方法。
Web或移動(dòng)平臺(tái):React提供React Native平臺(tái),可用于通過(guò)相同的React組件模型為iOS和Android開(kāi)發(fā)本機(jī)呈現(xiàn)的應(yīng)用程序。
無(wú)論是網(wǎng)絡(luò)還是本機(jī)移動(dòng)開(kāi)發(fā),React都是大多數(shù)用戶界面設(shè)計(jì)平臺(tái)的理想選擇。
React.js的缺點(diǎn):
陡峭的學(xué)習(xí)曲線:由于復(fù)雜的設(shè)置過(guò)程,屬性,功能和結(jié)構(gòu),它需要深入的知識(shí)來(lái)構(gòu)建應(yīng)用程序。
現(xiàn)在,讓我們轉(zhuǎn)到Vue.js并談?wù)勊膬?yōu)點(diǎn)和缺點(diǎn):
與React相比,Vue.js的下載量更少,并且主要用于構(gòu)建有吸引力的單頁(yè)面應(yīng)用程序和Web應(yīng)用程序。但是,Vue.js具有適應(yīng)性強(qiáng)的體系結(jié)構(gòu),使其成為廣泛使用的框架之一,具有最新的庫(kù)和包。
使用Vue.Js的優(yōu)點(diǎn)
易于使用:Vue.js包含基于HTML的標(biāo)準(zhǔn)模板,可以更輕松地使用和修改現(xiàn)有應(yīng)用程序。
更順暢的集成:無(wú)論是單頁(yè)應(yīng)用程序還是復(fù)雜的Web界面,Vue.js都可以更平滑地集成更小的部件,而不會(huì)對(duì)整個(gè)系統(tǒng)產(chǎn)生任何影響。
更好的性能,更小的尺寸:它占用更少的空間,并且往往比其他框架提供更好的性能。
精心編寫的文檔:通過(guò)詳細(xì)的文檔提供簡(jiǎn)單的學(xué)習(xí)曲線,無(wú)需額外的知識(shí); HTML和JavaScript將完成工作。
適應(yīng)性:整體聲音設(shè)計(jì)和架構(gòu)使其成為一種流行的JavaScript框架。它提供無(wú)障礙的遷移,簡(jiǎn)單有效的結(jié)構(gòu)和可重用的模板。
使用Vue.js的缺點(diǎn)
與Angular和React相比,Vue.js框架的市場(chǎng)份額仍然很小。它正在快速流行,但與此同時(shí),在使用Vue.js時(shí),可能會(huì)出現(xiàn)大規(guī)模應(yīng)用程序開(kāi)發(fā)方面的問(wèn)題。
好吧,考慮到其現(xiàn)代功能,速度和靈活性,Vue.js有可能實(shí)現(xiàn)Web應(yīng)用程序開(kāi)發(fā)的里程碑。
兩個(gè)框架的深入比較
重新渲染和優(yōu)化
當(dāng)您比較React和Vue時(shí),速度不能成為決定哪個(gè)更好的重要比較因素。在性能方面,我們考慮重新渲染功能。當(dāng)組件的狀態(tài)發(fā)生變化時(shí),React的機(jī)制會(huì)觸發(fā)整個(gè)組件樹的重新呈現(xiàn)。您可能需要使用額外的屬性來(lái)避免不必要的子組件重新渲染。
雖然Vue的重新渲染功能是開(kāi)箱即用的,但Vue提供了優(yōu)化的重新渲染,其中系統(tǒng)在渲染期間跟蹤依賴性并相應(yīng)地工作。
重新渲染Vue是最顯著的特征,使其成為全球開(kāi)發(fā)人員廣泛接受的框架。
JSX與HTML
React使用JSX - 一種聲明性JavaScript XML,允許開(kāi)發(fā)人員利用JavaScript的強(qiáng)大功能編寫組件,而Vue.js使用HTML模板創(chuàng)建視圖。
基于HTML的模板更加熟悉,在改進(jìn)現(xiàn)有應(yīng)用程序以獲得Vue反應(yīng)性功能的好處方面也是有益的。這為初學(xué)者和有經(jīng)驗(yàn)的專業(yè)人員提供了一個(gè)簡(jiǎn)單的學(xué)習(xí)曲線,因?yàn)樗麄冎械拇蠖鄶?shù)人都以這種或那種方式使用HTML。
路由和狀態(tài)管理解決方案
在像React和Vue這樣的基于組件的框架中,當(dāng)您開(kāi)始擴(kuò)展應(yīng)用程序時(shí),需要更加關(guān)注狀態(tài)管理和數(shù)據(jù)流。這是因?yàn)橛性S多組件相互交互并共享數(shù)據(jù)。
在這種情況下,React提供了一種稱為Flux / Redux架構(gòu)的創(chuàng)新解決方案,它代表了單向數(shù)據(jù)流,是著名MVC架構(gòu)的替代方案?,F(xiàn)在,如果我們考慮Vue.js框架,就會(huì)有一個(gè)名為Vuex的更高級(jí)架構(gòu),它集成到Vue中并提供無(wú)與倫比的體驗(yàn)。
建筑工具
React和Vue都有一個(gè)非常好的開(kāi)發(fā)環(huán)境。只需很少或根本沒(méi)有配置,您就可以創(chuàng)建應(yīng)用程序,使您能夠使用最新的實(shí)踐和模板。在React中,有一個(gè)Create React App(CRA),在Vue中,它是vue-cli。
這兩種引導(dǎo)工具都傾向于為您提供舒適靈活的開(kāi)發(fā)環(huán)境,并為您提供開(kāi)始編碼的出色起點(diǎn)。
跨平臺(tái)應(yīng)用程序開(kāi)發(fā):誰(shuí)是贏家?
跨平臺(tái)應(yīng)用程序開(kāi)發(fā)已經(jīng)廣泛流行,這兩個(gè)框架都在競(jìng)相提供卓越的跨平臺(tái)應(yīng)用程序開(kāi)發(fā)體驗(yàn)。 React的React Native是一個(gè)成熟且廣泛使用的本機(jī)渲染應(yīng)用程序平臺(tái)。另一方面,Vue的Weex仍在不斷發(fā)展,旨在為iOS和Android創(chuàng)建應(yīng)用程序提供流暢的開(kāi)發(fā)體驗(yàn)。
何時(shí)使用Vue.js Over React
當(dāng)您想要一個(gè)輕量級(jí),更快速和現(xiàn)代的UI庫(kù)來(lái)制作一流的SPA(單頁(yè)面應(yīng)用程序)時(shí),您應(yīng)該選擇Vue.js.對(duì)于習(xí)慣使用HTML的開(kāi)發(fā)人員來(lái)說(shuō),這是有利的。此外,它還提供了組件的可重用性,使其成為開(kāi)發(fā)人員在Web應(yīng)用程序中構(gòu)建無(wú)與倫比的用戶體驗(yàn)的選擇。
何時(shí)選擇React Over Vue.js
當(dāng)你是JavaScript的粉絲! React擁有一個(gè)成熟且規(guī)模更大的專業(yè)人士發(fā)展社區(qū)