前言
React 是由Facebook創(chuàng)建的JavaScript UI框架,React推廣了 Virtual DOM( 虛擬 DOM )并創(chuàng)造了 JSX 語法。JSX 語法的出現(xiàn)允許我們?cè)?javascript 中書寫 HTML 代碼。 VUE 是由尤雨溪開發(fā)的,VUE 使用了模板系統(tǒng)而不是JSX,因其實(shí)模板系統(tǒng)都是用的普通的 HTML,所以對(duì)應(yīng)用的升級(jí)更方便、更容易,而不需要整體重構(gòu)。 VUE 相較于 React 更容易上手,如果是一個(gè)有一定開發(fā)經(jīng)驗(yàn)的開發(fā)者,甚至都不需要花額外的時(shí)間去學(xué)習(xí),直接一遍開發(fā)一遍查文擋即可。 VUE 與 React 區(qū)別
React 的思路是 HTML in JavaScript 也可以說是 All in JavaScript,通過 JavaScript 來生成 HTML,所以設(shè)計(jì)了 JSX 語法,還有通過 JS 來操作 CSS,社區(qū)的styled-component、JSS等。 Vue 是把 HTML,CSS,JavaScript 組合到一起,用各自的處理方式,Vue 有單文件組件,可以把 HTML、CSS、JS 寫到一個(gè)文件中,HTML 提供了模板引擎來處理。 如下是兩者的生命周期對(duì)比: React 生命周期 VUE生命周期 React 整體是函數(shù)式的思想,在 React 中是單向數(shù)據(jù)流,推崇結(jié)合 immutable 來實(shí)現(xiàn)數(shù)據(jù)不可變。而 Vue 的思想是響應(yīng)式的,也就是基于是數(shù)據(jù)可變的,通過對(duì)每一個(gè)屬性建立 Watcher 來監(jiān)聽,當(dāng)屬性變化的時(shí)候,響應(yīng)式的更新對(duì)應(yīng)的虛擬 DOM。 如上,所以 React 的性能優(yōu)化需要手動(dòng)去做,而Vue的性能優(yōu)化是自動(dòng)的,但是Vue的響應(yīng)式機(jī)制也有問題,就是當(dāng) state 特別多的時(shí)候,Watcher 會(huì)很多,會(huì)導(dǎo)致卡頓。 React 與 VUE 共同點(diǎn)
React 與 Vue 存在很多共同點(diǎn),例如他們都是 JavaScript 的 UI 框架,專注于創(chuàng)造前端的富應(yīng)用。不同于早期的 JavaScript 框架“功能齊全”,Reat 與 Vue 只有框架的骨架,其他的功能如路由、狀態(tài)管理等是框架分離的組件。 優(yōu)勢(shì)
React
Vue
總結(jié)
如上所說的 Vue 的響應(yīng)式機(jī)制也有問題,當(dāng) state 特別多的時(shí)候,Watcher 會(huì)很多,會(huì)導(dǎo)致卡頓,所以大型應(yīng)用(狀態(tài)特別多的)一般用 React,更加可控??蓪?duì)于易用性來說,VUE 是更容易上手的,對(duì)于項(xiàng)目來說新人更容易接手。 使用 Reac 的公司:Facebook,Instagram,Netflix,紐約時(shí)報(bào),雅虎,WhatsApp,Codecademy,Dropbox,Airbnb,Asana,微軟等。 使用 Vue 的公司:Facebook,Netflix,Adobe,Grammarly,Behance,小米,阿里巴巴,Codeship,Gitlab和Laracasts等。 所以,技術(shù)沒有哪個(gè)更好或者是更優(yōu)秀,只要適合自己的才是最合適的。 |
|