區(qū)別:1、vue是雙向綁定,react不是;2、React使用JSX,Vue使用HTML模板創(chuàng)建視圖;3、React用Flux來管理狀態(tài),Vue用Vuex;4、React用Create React App腳手架,Vue使用vue-cli。
本教程操作環(huán)境:windows7系統(tǒng)、vue2.9.6&&react16版,DELL G3電腦。
React.js與Vue.js比較
React | Vue | |
---|---|---|
類型 | JavaScript庫 | JavaScript庫 |
適用于 | Web和Native的理想選擇 | 主要關(guān)注Web開發(fā),但它是為了支持其他平臺的前進(jìn)而編寫的 |
開發(fā)人員 | Facebook社區(qū)(由Jordan Walke創(chuàng)建) | Evan You |
首次發(fā)布 | 2013年3月 | 2014年2月 |
寫入 | JavaScript | JavaScript |
跨平臺開發(fā) | React的React Native是一個成熟且廣泛使用的原生應(yīng)用程序平臺 | Vue的Weex仍在不斷發(fā)展,旨在提供順暢的開發(fā)體驗(yàn) |
學(xué)習(xí)曲線 | 陡峭的學(xué)習(xí)曲線,需要深厚的知識 | 簡單的學(xué)習(xí)曲線,基于HTML的模板使其熟悉 |
人氣 | React在GitHub上最熱門的Javascript項(xiàng)目列表中排名第二 | Vue.js排名第一,是2017年最時尚的項(xiàng)目,年內(nèi)在GitHub上添加了超過40,000顆星 |
可重用性 | 僅CSS | 最大可重用性 |
性能 | 同樣快速 | 同樣快速 |
GitHub上的貢獻(xiàn)者 | 1201 | 189 |
模型 | 虛擬DOM(文檔對象模型) | 基于虛擬DOM HTML的模板 |
功能 | 可用作單頁面或移動應(yīng)用程序開發(fā)的基礎(chǔ) | 能夠?yàn)楦呒墕雾撁鎽?yīng)用程序提供動力的Web應(yīng)用程序框架 |
簡單 | React比Vue更復(fù)雜 | Vue比React更簡單 |
值得注意的特性 | 使用道具進(jìn)行單向數(shù)據(jù)綁定有狀態(tài)組件虛擬DOM 生命周期方法 JSX(JavaScript XML) HTML以外的架構(gòu) | 基于HTML的模板反應(yīng)性組件(將整個應(yīng)用程序劃分為小型,自我包含,通??芍赜玫慕M件)轉(zhuǎn)換路由*集成 |
Bootstrap應(yīng)用程序 | CRA(創(chuàng)建React應(yīng)用程序) | Vue-cli |
react和vuejs的區(qū)別
1、數(shù)據(jù)綁定
Vue中有關(guān)數(shù)據(jù)綁定的部分
vue是雙向綁定, Vue.js 最核心的功能有兩個,一是響應(yīng)式的數(shù)據(jù)綁定系統(tǒng),二是組件系統(tǒng)。所謂雙向綁定,指的是vue實(shí)例中的data與其渲染的DOM元素的內(nèi)容保持一致,無論誰被改變,另一方會相應(yīng)的更新為相同的數(shù)據(jù)。這是通過設(shè)置屬性訪問器實(shí)現(xiàn)的。
在vue中,與數(shù)據(jù)綁定有關(guān)的有 插值表達(dá)式、指令系統(tǒng)、*Class和Style、事件處理器和表單空間、ajax請求和計算屬性
react沒有數(shù)據(jù)雙向綁定
react是單向數(shù)據(jù)流
react中通過將state(Model層)與View層數(shù)據(jù)進(jìn)行雙向綁定達(dá)數(shù)據(jù)的實(shí)時更新變化,具體來說就是在View層直接寫JS代碼Model層中的數(shù)據(jù)拿過來渲染,一旦像表單操作、觸發(fā)事件、ajax請求等觸發(fā)數(shù)據(jù)變化,則進(jìn)行雙同步
2、重新渲染和優(yōu)化
當(dāng)你比較React和Vue時,速度不能成為決定哪個更好的重要比較因素。在性能方面,讓我們考慮重新渲染功能。當(dāng)組件的狀態(tài)發(fā)生變化時,React的機(jī)制會觸發(fā)整個組件樹的重新呈現(xiàn)。您可能需要使用額外的屬性來避免不必要地重新渲染子組件。
雖然Vue的重新渲染功能是開箱即用的,但Vue提供了優(yōu)化的重新渲染,其中系統(tǒng)在渲染過程中跟蹤依賴關(guān)系并相應(yīng)地工作。
重新渲染Vue是最顯著的特征,使其成為全世界開發(fā)人員廣泛接受的框架。
3、JSX與HTML
React使用JSX – 一種聲明性JavaScript XML,允許開發(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è)人士提供了一個簡單的學(xué)習(xí)曲線,因?yàn)樗麄冎械拇蠖鄶?shù)人都以這種或那種方式使用HTML。
4、路由和狀態(tài)管理解決方案
在像React和Vue這樣的基于組件的框架中,當(dāng)您開始擴(kuò)展應(yīng)用程序時,需要更加關(guān)注狀態(tài)管理和數(shù)據(jù)流。這是因?yàn)橛性S多組件相互交互并共享數(shù)據(jù)。
在這種情況下,React提供了一種稱為Flux / Redux架構(gòu)的創(chuàng)新解決方案,它代表單向數(shù)據(jù)流,是著名MVC架構(gòu)的替代方案。現(xiàn)在,如果我們考慮Vue.js框架,就會有一個名為Vuex的更高級架構(gòu),它集成到Vue中并提供無與倫比的體驗(yàn)。
5、建筑工具
React和Vue都有一個非常好的開發(fā)環(huán)境。只需很少或沒有配置,您就可以創(chuàng)建應(yīng)用程序,使您能夠使用最新的實(shí)踐和模板。在React中,有一個Create React App(CRA),在Vue中,它是vue-cli。
這兩種引導(dǎo)工具都傾向于為您提供舒適靈活的開發(fā)環(huán)境,并為您提供開始編碼的出色起點(diǎn)。