1樓:
抽象來說,區別在於控制權。
render props 則是控制反轉再反轉,控制權在子元件,父元件可以傳一些「參考」給子元件,但最後渲染的結果還是完完全全由子元件控制的。
所以具體用哪個,看你想把控制權給誰了
2樓:
無論是render props 還是 HOC你都需要乙個enhance的函式來解決這層抽象,暫且不論enhance的實現。
比如有個場景,我們需要增強乙個Component的背景顏色// HOC
););// 使用 HOC
Component = enhanceHOC( => })// 使用 Render Props
Component = props => enhanceRenderProps({...props,
// HOC在閉包裡
// 我們寫HOC是這樣的
// 在renderProps裡是這樣的
所以就基本的概念來講。
引數多少和輸出都是一樣的。 乙個寫成高階函式,乙個是普通的函式而已。
所以結論只是注意一下 enhanceHOC和enhanceRenderProps的寫法而已。
3樓:林建入
render props 可以完成所有 HOC 能做的事情,反過來卻不成立。並且 render props 可以避免 HOC 裡常見的 導致的型別不明確(如果你使用 TypeScript/Flow 的話)
如果有疑問,參見 Michael Jackson 的演講:Never Write Another HoC
話雖如此,HoC 也並非絕不可用。偶爾用用是可以的。就我個人而言不喜歡使用。
4樓:
『H 和 I 的區別』
HOC 是對元件能力的補充,例如,可以把元件的顯示隱藏的邏輯抽象出來,或者對所有元件的某個字段進行統一的校驗等等。
render props 是有點類似於控制反轉(IoC)了,大家定義好介面,我給你資料,長什麼樣子,你自己看著辦吧。
react 元件數比較深的時候,子元件怎麼向父元件傳指
隋堤倦客 eventbus 當然寫的時候一時爽,之後就比較蛋疼 試試context,其實挺好用的 要是工程有很複雜的預期還是用redux吧,redux真的很清晰很好用,除了寫起來麻煩點 yoom 說個不同的方案吧,我更傾向於發布訂閱的方式,使用了Rxjs。這樣子就跟框架無關了,無論React或Vue...
React 有哪些優秀實用的元件?
秘雨軒 介紹下自己寫 React UWP吧,實現微軟 UWP Design 和 Fluent Design 的 React 開源UI庫。這是官方文件 UWP and Fluent Design UI Libray by React 長這樣的. ProfLiu github上面有乙個開源專案,羅列了很...
react中某個元件的狀態變了,但是內部的乙個子元件並沒有變化,那麼這個子元件會重新渲染嗎?
高山景行 乙個元件執行setState之後,從這個元件為根的元件樹會有乙個更新的過程,每個元件都會根據自己的shouldComponentUpdate的結果執行render方法,然後和上次render的結果比較,找到最小差集之後patch到真實dom上。所以,如果子元件的shouldComponen...