爲何都在說 React 比 Vue 難?

前言javascript


咱們使用Vue和React已經很長一段時間了 ,兩個框架上實踐代碼量都在10萬行以上。不得不說二者html

都是很nice的,幫助開發者減小不少工做量,這類框架是現代化前端開發必備的。然而Vue和React前端

二者之間的選擇並不像選擇蘋果或香蕉同樣簡單, 二者在工程實踐上的差距讓咱們逐漸放棄了Vue。vue

圖片


圖片

常見搖擺問題、觀點java


Vue或React文檔更豐富?react


二者都有豐富的文檔(包括中文文檔),Vue 文檔、React 中文,因此不用擔憂你四六級都過不了,看不面試

懂文檔,這都是有眼就行的事~固然,若是你提早懂點javascript相關知識也是大大滴好,ES6 語法更redux

佳。api

Vue的話須要記住各類指令,還有屬性細節,兔不了常常查文檔。React 相對簡單,記住:「函數入口是框架

props,出口是html"就好了。

圖片


React學習門檻高?


這個也不是你選擇框架的緣由,若是這個也能夠做爲緣由的話,我以爲是由於你懶,給本身找了藉口。

據我本身學習、實踐總結,兩個框架都很簡單,有手就行,有腦就會,不見得會React就比Vue牛逼很

多。二者都提供了相應腳手架,方便用戶使用:


vue

圖片

react

圖片


傻瓜式使用,無限div就完事了。

圖片


大項目用React,小項目用Vue?


怎麼說呢?這個就是萬精油結論,沒有參考意義。你如何定義一個項目是大項目?超過xx萬行代碼?後

端API超過xxx個?不管什麼項目,都有作"大」的可能,只要正常運營,你就得持續維護,補充新增的需

求。框架的可持續演進更爲重要。

固然我能夠這麼跟你說,React 適不適合「小"項目我不知道,可是Vue不適合「大"項目,業務代碼超過5

萬行以後問題明顯,後面會詳細說這點。



圖片

區別



圖片

今天咱們就來分析一下這兩款框架的區別


模板引擎:

vue的視圖模板採用類html的寫法加上本身的指令與自定義屬性組成,在多數狀況下是要比react的JSX寫法開發效率高和清晰的。可是在複雜場景下,類html的寫法有時候很比較麻煩或者難以勝任,這個時候就凸顯出JSX的語言表現力的豐富了。不過vue目前也支持jsx的寫法。


樣式:

vue的樣式和模板能夠寫在同一個文件裏,而react的主流作法仍是要單寫一個樣式文件,雖然區別不大,但仍是更喜歡能少寫幾個文件的感受。另外vue的class有多種寫法,sting/object/array均可以還能自動merge,體驗很好。而react自己不行,須要藉助相似classname的庫來實現。


數據響應邏輯:

vue使用代理/攔截的方式使得咱們直接修改data就能夠了,而react須要使用setState api來實現。另外因爲vue的實現方式,因此vue知道咱們修改了哪些東西,而且還有watch/computed等鉤子公開發人員使用,而反觀react就比較不人性化了,須要咱們本身在業務邏輯層diff才知道。


配套設施:

這裏指的就是經常使用的配套庫(全家桶),vue基本上是官方給了咱們一個最佳實踐,直接按照官方推薦的全家桶來構建咱們的應用就夠了,而react就比較開發,對於社區依賴更多,因此相關的配套設施須要咱們本身去找去接,社區大神們的思想各不相同,因此比vue要費心。好比我要用redux還須要引個react-redux,並且竟然還不支持異步,我還得引個redux-thunk,可能我還得跟redux-saga對比下,較真一點的可能還不敢人云亦云,還要親自看看源碼才行,另外明知道我是個選擇困難症患者還要有個mobx來搗亂。可能當我找到自認爲是最佳實踐的方案的時候,項目已經黃了或者社區又出了新的方案(哭暈在廁所 =。=...)


性能:

在vue1.0時代,vue的性能的確是比react要弱的,但進入2.0時代,vue果斷借鑑了一大波react在性能方面的優化經驗(這裏不論這種作法怎麼樣啊),反正瞬間就把性能基本給拉平了。再加上react性能須要很是有經驗,很是注意你本身代碼的寫法才能發揮的出來,好比你要配合reselect庫或者對purecomponent/shouldupdate等很瞭解。不然你寫出來的應用的性能一定是奇慢的,而vue你其實沒必要關注那麼多,這得益於他的數據響應的內部實現。在絕大多數狀況下你不須要怎麼關注你的寫法是否致使了不少多餘的計算和渲染開銷。


使用人羣:

這點是vue的說大不大說小不小的命門,vue在國外是沒有react知名的,因此在國外react是一枝獨秀,致使你學習vue可能沒法跟世界接軌。另一個就是不知道曾幾什麼時候,面試官有意無心的會透露出若是你只會vue,那你必定是個初學者是個low逼....一方面緣由的確vue的上手難度要比react小不少,剛纔也說了不少vue不須要關心這關心那,因此新手學習vue的更多。但我其實很不能理解這點!!爲何學習vue就要比學習react低人一等。爲啥新手學的多的東西就不能是好東西,非的是晦澀難懂,很難掌握的東西才能凸顯出你的不同凡響和不凡麼?我以爲這個價值觀是很是的扭曲的。在我看來不說設計思想,就單說vue的實現方式我認爲是要比react高級和先進的。


好了,說了真麼多,我猜你可能仍是不知道要選哪一個框架,哈哈哈.... 真是個世界性難題啊。


這麼說吧,我的認爲,拋開偏見,中小型項目我推薦使用vue來開發,緣由:

  1. 須要考慮的事情少。

  2. 開發效率高。

  3. 比較初級的工程師也能夠輕鬆勝任。

而對於大型項目,仍是推薦react去開發,緣由:

  1. 你的掌控力更多。

  2. 因爲一不當心就會致使性能降低,因此會迫使你去好好組織你的代碼,因此寫出來的東西更規範,可維護性更高。這個對於大型項目是相當重要的。誰也不但願一個好幾年寫出的大型項目由於走了幾個老人就沒法維護了吧。

相關文章
相關標籤/搜索