我一直在閱讀有關性能的文檔,但我找不到我的問題的答案...如何在啓動時僅渲染一次React組件?
我有一堆按鈕,我的應用程序將基於一些屬性,但不是狀態,父組件永遠不會改變它們的屬性。然後我有這個onKeyDown
事件處理程序,它將偵聽一些密鑰並更新另一個組件。
我的問題是,當按鍵和更新這一個組件時,所有其他按鈕也會呈現(通過React開發工具爲Chrome觀察)。我沒有在我的按鈕上實現shouldComponentUpdate(nextProps, nextState)
,但不應該默認有這種行爲?我的意思是,將this.props
與nextProps
相比較,如果它們完全相同,請不要撥打render()
?
我應該自己爲每個應該只在應用程序啓動時呈現一次的組件進行此操作嗎?
編輯:PureComponent
似乎解決問題......但是,而不是創建一個新的問題,我更新這其中一個相關的問題:
爲什麼不是文檔建議都默認情況下基於PureComponent的組件?默認情況下使用PureComponent
而不是典型的Component
有什麼爭議?
您是否遇到性能問題,或者僅僅是因爲它的美觀,您不想讓這些按鈕更新? – mguijarr
後者,它只是感覺不對...我知道,它可能只是過早的優化。但我只是問:) –
看看React.PureComponent而不是React.Component(見https://facebook.github.io/react/docs/react-api.html) – mguijarr