React--Facebook建立的JavaScript UI框架。它支撐着包括Instagram在內的大多數Facebook網站。React與當時流行的jQuery,Backbone.js和Angular 1等框架不一樣,它的誕生改變了JavaScript的世界。其中最大的變化是React推廣了Virtual DOM(虛擬DOM)並創造了新的語法——JSX,JSX容許開發者在JavaScript中書寫HTML(譯者注:即HTML in JavaScript)。css
Vue致力解決的問題與React一致,但卻提供了另一套解決方案。Vue使用模板系統(弱化的jsx),使其對現有應用的升級更加容易。這是由於模板用的就是普通的HTML,經過Vue來整合現有的系統是比較容易的,不須要總體重構。同時Vue的學習曲線相對react來講更加容易。html
React與Vue有不少類似之處,如他們都是JavaScript的UI框架,專一於創造前端的富應用。不一樣於早期的JavaScript框架「功能齊全」,Reat與Vue只有框架的骨架,其餘的功能如路由、狀態管理等是框架分離的組件。前端
它們之間的最大區別是Vue一般使用HTML模板文件,而React則徹底是JavaScript。Vue有雙向綁定語法糖。vue
在Vue組件中,有幾個觀念和React相差比較大,我以爲主要有如下這幾點:react
Vue組件分爲全局註冊和局部註冊,在react中都是經過import相應組件,而後模版中引用;webpack
props是能夠動態變化的,子組件也實時更新,在react中官方建議props要像純函數那樣,輸入輸出一致對應,並且不太建議經過props來更改視圖;git
子組件通常要顯示地調用props選項來聲明它期待得到的數據。而在react中沒必要需,另二者都有props校驗機制;github
每一個Vue實例都實現了事件接口,方便父子組件通訊,小型項目中不須要引入狀態管理機制,而react必需本身實現;web
使用插槽分發內容,使得能夠混合父組件的內容與子組件本身的模板;vuex
多了指令系統,讓模版能夠實現更豐富的功能,而React只能使用JSX語法;
Vue增長的語法糖computed和watch,而在React中須要本身寫一套邏輯來實現;
react的思路是all in js,經過js來生成html,因此設計了jsx,還有經過js來操做css,社區的styled-component、jss等;而 vue是把html,css,js組合到一塊兒,用各自的處理方式,vue有單文件組件,能夠把html、css、js寫到一個文件中,html提供了模板引擎來處理。
react作的事情不多,不少都交給社區去作,vue不少東西都是內置的,寫起來確實方便一些, 好比 redux的combineReducer就對應vuex的modules, 好比reselect就對應vuex的getter和vue組件的computed, vuex的mutation是直接改變的原始數據,而redux的reducer是返回一個全新的state,因此redux結合immutable來優化性能,vue不須要。
react是總體的思路的就是函數式,因此推崇純組件,數據不可變,單向數據流,固然須要雙向的地方也能夠作到,好比結合redux-form,組件的橫向拆分通常是經過高階組件。而vue是數據可變的,雙向綁定,聲明式的寫法,vue組件的橫向拆分不少狀況下用mixin。
從二者的github表現上來看
能夠看出vue的star數量已是前端框架中最火爆的。從維護上來看,react是facebook在維護,而vue現階段雖然也有了團隊,但主要仍是尤雨溪在維護貢獻代碼,而且阿里巴巴開源的混合式框架weex也是基於vue的,因此咱們相信vue將來將會獲得更多的人和團隊維護。根據不徹底統計,包括餓了麼、簡書、高德、稀土掘金、蘇寧易購、美團、天貓、荔枝FM、房多多、Laravel、htmlBurger等國內外知名大公司都在使用vue進行新項目的開發和舊項目的前端重構工做。
根據不徹底統計,包括餓了麼、蘇寧易購、美團、天貓、Laravel、htmlBurger等國內外知名大公司都在使用vue進行新項目的開發和舊項目的前端重構工做。
react有material-design,螞蟻金服的ant-design等,vue有餓了麼出品的element以及iview等。
Vue的優點包括:
React的優點包括:
而實際上,React和Vue都是很是優秀的框架,它們之間的類似之處多過不一樣之處,而且它們大部分最棒的功能是相通的:
原文出處:https://www.cnblogs.com/kung0806/p/10500297.html