React 為什麼要引入 class component?

時間 2021-06-03 05:02:56

1樓:

因為React發布的時候前端還在刀耕火種,接受不了丘奇哥哥的理念。

而且那個時候正好也是前端流行物件導向風格的時候,嘖嘖嘖。

關鍵是你物件導向的話,要做戲做全套啊,光放個class在那裡有啥用,那麼多建立型模式都用上啊,依賴注入也用上啊?

所以後來React乾脆函式式一擼到底,hooks應該是早就有了現在放出來的吧。

2樓:DK-OPA

類主要作用是抽象,到前端解決的就是元件的復用問題。如果乙個元件僅僅是乙個plain object,比如乙個彈窗元件,不管你在頁面引用多少次,它還是同乙個例項,它的狀態就是共享的,簡單的說它的狀態就是不可維護的,這違背了react的初衷,而前期的sfc只是用來渲染,適用的場景有限。

react hooks主要解決的有兩個問題:

第乙個問題是業務邏輯和結果的分離會給後續維護帶來困難和繁瑣。

第二個問題render props和hoc不可避免的會讓元件的巢狀層級過深,而且hoc有props被覆蓋的弊端。

這是react hooks被提出來的主要初衷。

class component 有豐富的鉤子,這是sfc+react hooks替代不了的,因為必要的時候你還是得用class component的鉤子去解決你的前任留下的業務問題。

這兩者不是對立的關係,而是相互補充,另外sfc編譯之後所占用的檔案體積比class component要小很多。

為什麼要引入應力?

醫者仁心 應力是由於他的存在才有它的概念,比如內應力是指物件內部所受的力,當你想通過外力改變它的形狀,他的內部就回有個力個你抵抗。就像以前打鐵造工具那樣,必須燒紅,消除它的應力,它才可能由一塊鐵變成你想要的形狀。要是不燒紅消除它的應力,那塊鐵當受力到一定的程度就會折斷。 草上飛 同學,工科跟實踐相結...

為什麼Mumford要引入stable bundle?如何理解stable bundle?

李歸農 1.因為Mumford這輩子最重要的工作是GIT,引入stable bundle也是基於研究模空間的考量。構造模空間需要quotient by automorphism group 通常不是isolated 我個人不懂GIT 在巴黎的時候有人看我做工作用了下flip就覺得我懂GIT,其實有時...

為什麼react和react dom要分成兩個包?

我是老尚 因為有一些業務場景是沒有dom的,例如物聯網的小led屏什麼的。所以關於dom,就放在dom裡。而ReactJs的野心不止於dom呀,它是乙個體系的,關於底層 核心的東西都在react包裡。例如react native就是搞移動端的,它也是單獨的乙個包。其實就是不同層級的模組之間不能完全依...