我經常讀到,如果可能的話,我應該使用「無狀態函數組件」,但大多沒有任何解釋。有什麼好處?'無狀態功能組件'優於'ES6類組件'有什麼優勢?
4
A
回答
3
首先,無狀態函數組件渲染速度更快,因爲React渲染管道中存在優化的短路徑。
其次,代碼更清晰,因爲您鍵入的次數更少,幾乎沒有視覺噪音。當然,如果你使用現代JS。檢查出來,我定義一些「自定義標籤」:
const MyFancyDiv = ({ children, ...otherProps }) => (
<div { ...otherProps } className='i-am-fancy-wrapper'>
{ children }
</div>
);
對於不具備的狀態,背景,或自定義生命週期方法的一切,這是首選的方式。
它實際上是React的特性,它使得很難擊敗任何其他框架。儘可能使用它。
+0
不是一個優點,但可能值得注意:功能組件根本沒有實例。類組件有實例,但是你永遠不需要直接創建一個組件實例--React負責這個。 –
+0
是的,這是它們渲染速度更快的原因之一。沒有實例,沒有生命週期鉤子,簡化了渲染路徑。 – gaperton
相關問題
- 1. 對於簡單功能靜態優於靜態優勢
- 2. pathmunge優於grep的優勢是什麼?
- 3. Kafka優於RabbitMQ的優勢是什麼?
- 4. 將有狀態的React組件轉換爲無狀態的功能組件:如何實現「componentDidMount」類的功能?
- 5. FSM(有限狀態機)優於SOA的優勢?
- 6. React功能/無狀態純組件
- 7. 功能無狀態組件中的PropType
- 8. 通過shouldComponentUpdate對無狀態功能組件進行響應優化
- 9. 非靜態類相對靜態類有什麼優勢?
- 10. Oracle UDF對於Teradata有什麼優勢?
- 11. 暴露組件功能ES6
- 12. Hibernate NamingStrategy有什麼優勢
- 13. reftype {}有什麼優勢?
- 14. OSAtomicIncrement64 x類屬性...有什麼優勢?
- 15. WCF服務優於WebService 2.0的性能優勢是什麼?
- 16. 返回null從一個無狀態的組件/「功能組件」
- 17. C++函子的優勢 - 持有狀態
- 18. Angular的組件風格封裝是否有性能優勢?
- 19. 「靜態」ASPX文件中的OutputCache有什麼優勢?
- 20. Promises優於CPS和Continuation Functor/Monad有什麼優勢?
- 21. 異步優於BeginXXX/EndXXX有什麼優勢?
- 22. 優勢虛擬功能
- 23. 如何編寫擴展功能組件的ES6類React組件?
- 24. 轉換使用連接到容器組件無狀態組件 - 優化
- 25. 第三方軟件組件,優勢與劣勢?
- 26. 包裝狀態monad有什麼優點?
- 27. 使用Java將內部類設爲靜態有什麼優勢?
- 28. 「無狀態功能組件無法給予參考」是什麼意思?
- 29. 將字符串拆分爲initiliase javascript數組有什麼優勢?
- 30. 使用arrayWithCapacity比使用數組有什麼優勢?
谷歌搜索這兩個短語每個出現在[本文](https://facebook.github.io/react/docs/reusable-components.html)作爲第一個結果。它列出了好處。儘管如此,這太寬泛了。也許你應該閱讀一些文章,然後回來解釋你所知道的和不知道的。 – 4castle
我看過那篇文章。他們只是提供了關於這些好處的很少的信息。我認爲這將有助於我和其他人從中獲得更多的細節。 – Rotareti
有趣。 「擱置」。這是完全正確的問題。好的答案很簡短,並且沒有太多「你真的看到」太多答案「或者」太長「了嗎? – gaperton