京東云開發者|關于“React 和 Vue 該用哪個”我真的栓Q( 五 )

  • 在項目優化中 , 由于React的更新特性是自根節點開始不斷遞歸對比虛擬dom去查找變化,如果不進行手動優化,那么將導致每層組件都會重新調用render , 在大型項目中可能就是性能災難,所以React官方提供了很多專門用于優化的 API,比如shouldComponentUpdate、PureComponent、React.memo等 , 致使在日常工作中,開發者在思考業務邏輯的同時,還要考慮性能優化,無法專注于業務本身 。而Vue則因為天生具有依賴收集的優勢,對于數據的變化更敏感和準確 , 開發者即使不刻意關注優化,Vue也能提供給你不錯的性能 。
  • 說Vue重的,其實大多糾結在API數量 , 需要記憶的東西多,并且如果使用了Vue3,那就又會發現Vue3里不論是 setup 寫法 , 還是API的更新,都有了翻天覆地的變化,于是發現要記憶的東西就更多了 :cold_sweat:
    但是這幾點對于有經驗的熟練框架使用者來說 , 常用的API其實很固定,也往往就是那么幾個,對于新入門的小伙伴,千萬不要產生勸退心理:grimacing:
    10. 社區生態
    • 全球開發者使用框架占比調查 , 數據來源于 Stackoverflow 的 58,743 名受訪者,截圖中未完全列出所有看框架的排名,點擊鏈接查看 , React 相較Vue牢牢占據著第二把交椅 。

    京東云開發者|關于“React 和 Vue 該用哪個”我真的栓Q

    文章插圖
    截止到 2022年6月23日 的一些數據
      • npm 周下載量:React:15,764,543 次Vue:3,279,362 次
      • 在 Stackoverflow 上關于 #reactjs 標簽的問題討論有 396,378 個,而關于 #vue.js 的有 94709 個
      • 在 Github 上,Vue的 Star 數為 197K,已經超過React的 190K
      • 另一方面,通過來自 similartech 的數據顯示,React 被應用在了 1,256,598 個網站中,并仍在以每月 0.59% 的速率增長,而使用Vue的網站有 296,047 個 , 每月增長速率為 0.87% 。

    京東云開發者|關于“React 和 Vue 該用哪個”我真的栓Q

    文章插圖

    京東云開發者|關于“React 和 Vue 該用哪個”我真的栓Q

    文章插圖
    11. 開源代碼許可協議也叫軟件許可證,具體解釋可以查看維基百科,下面說重點 。
    • React 是 Facebook 的開源項目,Facebook 在2016年11月強化了 BSD 許可證和專利許可證的概念,在對許可證書授權方和被授權方而言,存在待遇上的不對等性,這就帶來一個很關鍵的風險點:使用 React 的公司和 Facebook 一旦存在業務競爭,React 將成為 Facebook 獲得訴訟勝利重要籌碼 , 這無形之中將給競爭公司帶來法務風險,雖然 React 后來把開源協議改成了 MIT , 但是前車之鑒,在某些重大項目的技術棧選擇上,尤其在當前國際環境的斗爭中還是要慎重考慮,并充分告知本公司潛在的風險 。
    • Vue 是由國人尤雨溪開發,軟件協議為 MIT,目前在國內起碼暢快使用是沒問題的 。
    • 關于開源協議的解釋可以查看百度百科
    三、總結:做個了斷終于到結尾了,關于React和Vue的選型,我們來做個總(liǎo)結(duàn)吧 。
    1. 在選型前,首先是要考慮歷史因素和團隊現狀 , 切換技術棧的前提是不要顯著的增加上下游合作方的時間成本 。
    2. 充分考慮框架的兼容性,如果不滿足業務需求,再優秀也要 pass 。
    3. 對于新手來說,React過于靈活,雖然常用API不多,但是里面有很多設計模式和概念,在具備一定規模的項目中,新手的學習曲線一開始會比較陡,并且需要代碼手動優化,同時龐大的社區中有層出不窮的優秀框架,但是在同類型庫的選擇上也會相對吃力,所以不推薦新手使用 。但是對于具備幾年經驗的開發者來說,React 的靈活也恰恰是優勢,再結合各種設計模式,很容易使項目更具創造性,對于維護具備一定規模的項目很有益處,這也真正能體現開發者的編程能力 。
    4. 而Vue則恰恰相反,對新手友好,SFC 中 HTML、script、style 相互隔離的方式更符合傳統的前端開發邏輯,Vue 也已提供了基本的優化,且周邊框架的選型也不需要過多關注 。
    5. 關于是否適合大型項目,有人說Vue不適合大型項目,適合大型項目的一定是React , 筆者并不這么認為,如果Vue3還沒出,那么受制于Vue2的 Option Api,Vue在大型項目中多少會有影響,主要體現在邏輯復用和代碼組織上,但是Vue3有 setup 模式下 Composition Api 的加持,Vue 也已足夠靈活,筆者認為關于“Vue 不適合大型項目”的論調可以休矣,在Vue和React特性越來越趨同的今天 , 如果依然出現這種想法,那可能更多還是**“人”的問題** 。這里還有一個有意思的小插曲 , 筆者曾經和朋友聊天聊到Vue和React,談到他對這倆框架的看法 , 當時他說的話令我印象很深刻,他說“React 項目要想寫好 , 會比同規模的Vue難一些,但是React要想寫壞,那可太容易了”,截止到目前 , 我對這句話仍深以為然 。

      推薦閱讀