成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

尤雨溪再噴 React,這波我要反駁一下

開發 前端
寫這篇文章,無意去過度爭論 Vue 和 React 到底誰更好,因為在實際場景中做技術選型,要考慮的因素還包括技術之外的東西,這些外因甚至比技術本身更加重要。比如,我一直想去的那個團隊,用的是 React,這樣的理由,更加能左右一個人的決定。

這兩天幾個群都在傳尤大噴 React 文檔的截圖,并且引起了熱烈的討論。然后就有人在問,是不是 React 真的那么坑。

作為一個 React 深度使用者,覺得不應該讓新學 React 的朋友留下這樣一個刻板印象,所以我結合自身對于 React 的使用體驗,反駁一下他的觀點。

看一下尤大是怎么噴的。先是有個人發文吹了一波 React 新官網寫得很用心。

然后尤大不知道為什么怨念會這么深,就說 React 挖下了許多艱深復雜的坑,用了夸張的手法來特意強調了這些坑的嚴重性。甚至用了 PUA 這樣的詞來刻意強調自己的觀點。

然后又說:React 最成功的地方在于塑造了一種幾近于 cult 的凝聚力...

好巧不巧,我剛好認識這個單詞...

cult:邪教

如果我說尤大有點上頭、激進、極端,這應該不算是夸張的評價吧?我記得他以前說國內噴子多,技術氛圍沒有國外好,他這是在干嘛?說 React 用戶是邪教、是被 PUA,這不算噴人嗎?

一、截圖中的案例

首先跟大家明確一下,截圖中的案例,完全不是 React 的坑點。而應該算是 React 的優點之一。

因為當 React 中的狀態發生變化時,會導致組件函數重新執行。因此,當我們需要一個計算屬性時,不用做特別的處理和定義,正常使用即可。

function Form() {
  const [firstName, setFirstName] = useState('Taylor');
  const [lastName, setLastName] = useState('Swift');
  // ? Good: calculated during rendering
  const fullName = firstName + ' ' + lastName;
  // ...
}

例如使用 useEffect 去監聽 state,這是冗余的操作。然后給出了錯誤示范。

function Form() {
  const [firstName, setFirstName] = useState('Taylor');
  const [lastName, setLastName] = useState('Swift');

  // ?? Avoid: redundant state and unnecessary Effect
  const [fullName, setFullName] = useState('');
  useEffect(() => {
    setFullName(firstName + ' ' + lastName);
  }, [firstName, lastName]);
  // ...
}

所以這里只是列舉出來部分使用者的錯誤示范而已,壓根算不上是一個坑點。如果這也算坑點,我可以在別的框架使用者的代碼里找到一大堆錯誤示范,相互攻擊就完事了,對不?

二、React 弱侵入性

React 始終保持了對 JavaScript 的弱侵入性。我認為這是一個非常大的優點。也就是說,當你使用 React 開發時,實際上用到的語法相對比較少,就算是你學習 React 也不會接觸到太多的官方 API。

弱侵入性帶來的一個巨大的好處是,我們在開發時可以順利植入我自己的開發理念。比如,你覺得 React 沒有做依賴收集,是不好的,那么你就可以寫一個狀態管理去做依賴收集。Mobx 就是做這個事情的。

又或者,你覺得 React 提供的全局狀態管理不如你的心意,你就可以自己封裝一個發布訂閱,結合自定義 hook 也能方便的訂閱每一個組件。

這樣的自由度一定是會受到 React 深度使用者歡迎的。這也是 React 生態百花齊放的原因之一。不知道別人會怎么樣,但是我覺得我作為開發者,我非常喜歡多種開發思想相互碰撞的氛圍。

三、閉包陷阱?

有的人覺得閉包陷阱是一個坑。

實際上,這個所謂的閉包陷阱這個詞,不應該與 React 綁定在一起。因為閉包本身就是 JS 自身的特性。就算沒有 React,許多人也覺得閉包難以理解。而且作為前端開發,我覺得應該做的事情是去掌握閉包的機制和邏輯,而不是覺得閉包這個東西我理解不了,就認為它不好。

閉包的特性讓 JS 的能力變得非常強大,甚至你很多時候也在不知不覺中利用閉包來達到你的目的。許多別的開發語言中,也引入了閉包的機制,說明閉包是經歷過時間沉淀的方案。

如果一個知識點,理解起來比較困難,然后我們就給他戴上心智負擔重的帽子,然后把他作為一個缺點去不斷批評他,這算是正常的想法嗎?

四、性能不好?

Vue 重依賴收集,輕/無 UI diff.

React 無依賴收集, 重 UI diff.

也就是說,當 Vue 的數據變得龐大和復雜,他依然會有不小的性能壓力。因此 Vue 的性能優化策略應該是集中在如何簡化數據結構上。而 React 的優化重點,在如何減輕 diff 壓力上。

誰也不能否認,有人能合理利用 React 的機制,編寫出來一套性能比 Vue 更好的項目。只是說,做到這個事情對于 React 新玩家來說,有點困難而已。

Vue 均衡性能更好,React 性能上限更高。既然各有優劣,他只是一個不同人群的取舍問題,但你絕對不能說,這是 React 艱深復雜的坑點。

五、新手友好?

尤大一直以框架對新手友好作為一個重要的判斷標準來證明一個框架是否優秀。但是捫心自問,各位前端開發們,你們真的會一直認為一門技術對新手友好,就一定是更好的嗎?

我們在群里實際上還有另外一個觀點。

當你還是新人的時候,你希望你學的東西簡單,能快速上手。但是當你學成之后,你又擔心他太簡單,會的人太多,自己毫無競爭力。

我猜測許多人的心態,會經歷這樣的變化。所以我遇到很多 Vue 開發者,在使用了幾年 Vue 之后,也會有很強烈的想法學習一下 React

實際上,在我看來,當我們技術能力逐漸變得更強,我掌握的技術,能夠支撐起更高的上限,這也是一門框架不可忽視的巨大優勢。在兩者之間取得一個平衡,我認為這一點上,React 比 Vue 要做的好。

我們不能因為對新手友好,就忽略了 React 上限更高這個事實。而且事實上,現在已經有同學認為, Vue3 的學習成本,已經高于 react hooks。

六、Vue3 的破壞性更新

尤大說,Vue3 的破壞性更新,是他們團隊犯的錯誤。但真的是決策失誤嗎?

我看未必。因為你不得不承認,事實上,你單看 Vue2 你就知道,Vue3 的出現,更多的是被逼無奈。

有兩個重要因素導致了 Vue2 承擔了巨大的壓力。

一個因素是 TS 被廣泛接納。導致了 Vue2 不支持 TS 成為了一個無法被反駁的缺陷。即使是現在的 Vue3,也依然有人覺得它對 TS 的支持并沒有做到盡善盡美。

另外一個就是 React hooks 的出現,讓 Vue2 的差距被明顯拉開。所以你才會看到新的 Vue 語法,從某種程度上,跟 React hooks 長得很相似。

這兩個因素組合在一起,催生了 Vue3 長成現在的樣子。

然而破壞性更新是有代價。現在依然有大量的團隊無法成功把項目從 Vue2 升級到 Vue3,這才是極大的坑點。

六、最后

寫這篇文章,無意去過度爭論 Vue 和 React 到底誰更好,因為在實際場景中做技術選型,要考慮的因素還包括技術之外的東西,這些外因甚至比技術本身更加重要。比如,我一直想去的那個團隊,用的是 React,這樣的理由,更加能左右一個人的決定。

主要的目的是不希望被很多人認為,React 像尤大說的那樣,真的有很多艱深復雜的坑,我不認同這樣的說法。也不希望吹一下 React 就被當成邪教。我覺得好的東西,夸一下這是很正常的事情。

責任編輯:姜華 來源: 這波能反殺
相關推薦

2024-03-06 07:28:23

Vue前端開發Vapor 模式

2023-07-26 08:34:40

VueReact

2024-10-09 14:07:05

2025-05-06 13:44:17

Vue前端人工智能

2022-09-08 16:31:17

前端Web

2025-06-03 08:49:42

2023-10-06 09:43:13

2025-06-23 11:35:29

VormsVue 3代碼

2025-06-18 10:02:06

H3前端開發

2023-11-22 10:12:43

Sortablejs拖拽庫

2018-12-13 12:13:04

前端開發編程

2024-05-30 07:07:00

Virtual虛擬 DOM前端

2025-05-06 03:30:00

AIVueVite

2022-11-08 15:19:49

軟件工具

2022-11-02 08:12:47

TurbopackVite

2021-08-19 06:20:32

Native CSS 前端尤雨溪

2023-12-20 15:41:46

VueViteVue 3

2025-06-10 08:52:14

2022-01-26 11:00:59

尤雨溪Vue漏洞

2025-06-03 10:05:01

ViteVue 3.6前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区精品视频 | 日本高清视频在线播放 | 欧美亚洲国产日韩 | 波多野结衣中文字幕一区二区三区 | 国产一区二区高清在线 | 欧美一级二级视频 | 日韩成人精品视频 | 久久国产日韩欧美 | 欧美一区二区三区在线观看 | www.av在线 | 国产真实精品久久二三区 | 久久99深爱久久99精品 | 四虎在线播放 | 国产一区二区三区四区五区加勒比 | av网站在线看 | 久久一区二 | 中文字幕日韩av | 国产成人一区二区 | 一区二区三区精品在线 | 国产免费一区二区 | 亚洲欧美日本国产 | 一级毛片观看 | 日韩欧美一区二区三区免费观看 | 91精品国产综合久久婷婷香蕉 | 色婷婷国产精品 | 精品视频亚洲 | 97偷拍视频 | 久久精品二区 | 久久一区二区视频 | 国产精品一区在线播放 | 亚洲色图综合 | 国产一区二区在线免费观看 | 亚洲区一区二区 | 久久精品一 | 欧美一级二级视频 | 国产一区久久 | 男女黄网站 | 久久一区二区av | 国产免费一区二区三区免费视频 | 男人天堂色 | 精品欧美一区二区三区免费观看 |