今晚我們來搞一搞vue和react的對比好吧,話不多說今天我們直接開搞可好,各位小老闆,開始吧
1.react整體是函式式的思想,把元件設計成純元件,狀態和邏輯通過引數傳入, 所以在react中,是單向資料流,推崇結合immutable來實現資料不可變。 react在setstate之後會重新走渲染的流程,如果shouldcomponentupdate返回的是true,就繼續渲染, 如果返回了false,就不會重新渲染,purecomponent就是重寫了shouldcomponentupdate, 然後在裡面作了props和state的淺層對比;而vue的思想是響應式的,也就是基於是資料可變的,通過對每乙個屬性建立watcher來監聽, 當屬性變化的時候,響應式的更新對應的虛擬dom
2.react的效能優化需要手動去做,而vue的效能優化是自動的,但是vue的響應式機制也有問題, 就是當state特別多的時候,watcher也會很多,會導致卡頓,所以大型應用(狀態特別多的)一般用react,更加可控詳解:vue元件在初始化時會通過object.defineproperty對每乙個data屬性建立對應的wather,然後在模板編譯時收集依賴。以後只要修改data的任何乙個屬性,就會觸發檢視的重新渲染,而且是精確的修改對應的vdom
react的機制是每次setstate的時候,呼叫shouldcomponentupdate,判斷state或props改變需不需要重新render,如果返回true才會渲染。預設的實現是返回true,purecomponent的shouldcomponnentupdate淺層對比了兩次state,考慮到效能,需要寫好shouldcomponentupdate。
3. react的思路是all in js,通過js來生成html, 所以設計了jsx,還有通過js來操作css,社群的styled-component、jss等vue是把html,css,js組合到一起,用各自的處理方式,vue有單檔案元件, 可以把html、css、js寫到乙個檔案中,html提供了模板引擎來處理
詳解:react渲染是使用jsx,用js來操作html,列表渲染、條件判斷等都通過js來控制,而vue提供了模板的語法,支援指令、過濾器等模板功能,簡化了渲染邏輯。在react元件裡需要寫大段js才能描述清楚的邏輯,使用vue的模板可以很簡潔緊湊的表明。
模板和jsx各有優缺點,jsx全部使用js來寫邏輯,更加的靈活,也沒什麼學習成本,但是有些渲染邏輯表達會比較囉嗦。 模板因為是專門針對渲染設計的dsl,所以寫一些渲染邏輯時會特別的簡潔和緊湊,但學習成本高一些,並且擴充套件需要通過指令和過濾器的方式。
4.react是類式的寫法,api很少 而vue是宣告式的寫法,通過傳入各種options,api和引數都很多。 所以react結合typescript更容易一起寫,vue稍微複雜。 vue結合vue-class-component也可以實現類式的寫法,但是還是需要通過decorator來新增宣告,並不純粹
5.react可以通過高階元件(higher order components--hoc)來擴充套件,而vue需要通過mixins來擴充套件 react剛開始也有mixin的寫法,通過react.createclass的api,不過現在很少用了。 vue也不是不能實現高階元件,只是特別麻煩,因為vue對與元件的option做了各種處理, 想實現高階元件就要知道每乙個option是怎麼處理的,然後正確的設定。
6.react做的事情很少,很多都交給社群去做,交給社群去做的優勢是可以產生很多優秀的方案,但是會增加技術棧的學習成本和上手難度。總結:濃縮出來就是 思性路寫擴射 這六個字的簡便記憶方法我不便給你們描述,我相信你們能悟出來,實在想知道的私信我好吧vue很多東西都是內建的,寫起來確實方便一些,內建的優勢是技術棧學習成本低、上手快,但是方案變得不可替換了。
從2張執行流程圖看vue和react區別:
今天就到這裡了,各位繼續加油!!!
Vue和React的對比
我們來搞一搞vue和react的對比好吧,話不多說,上幹活。react整體是函式式的思想,把元件設計成純元件,狀態和邏輯通過引數傳入,所以在react中,是單向資料流,推崇結合immutable來實現資料不可變。react在setstate之後會重新走渲染的流程,如果shouldcomponentu...
Vue 和 React 深度對比
我使用 vue 和 react 已經很長一段時間了,兩個框架上實踐 量都在 10 萬行以上。不得不說兩者都是很 nice 的,幫助開發者減少很多任務作量,這類框架是現代化前端開發必備的。然而 vue 和 react 兩者之間的選擇並不像選擇蘋果或香蕉一樣簡單,兩者在工程實踐上的差距讓我們逐漸放棄了 ...
React和Vue的簡單對比
react的基本功能差不多看完了,順帶讀了一點vue的基礎語法。其實為了更好的理解它們。1.功能上vue應該是比react更強大的,因為vue不僅支援傳統的以html為主線的模板引擎,同時也支援react發明的jsx。我沒有仔細去看vue的jsx,所以沒有辦法比較它與react的優劣,不清楚vue ...