2016-12-10 70 views
0

我正在嘗試構建不使用ReactJS組件狀態或道具以顯示數據的ReactJS應用程序。相反,我使用道具將模型傳遞給組件,以便它將綁定self,並在模型數據更改時重新渲染。在ReactJS中使用比setState()慢的forceUpdate?

我想保持組件狀態'乾淨',以便組件的狀態只包含有關用戶體驗相關內容的數據。如果您熟悉Firebase,那麼這些應用的工作原理與使用Firebase構建反應應用的方式非常相似,但應該更具說明性。

因爲我不使用component.setState({...})我想用component.forceUpdate。我已經讀過很多次,你不應該使用這種方法,因爲它跳過了生命週期方法,但這是一個實驗。

我現在最感興趣的是它是否比setState慢,ReactJS在強制更新時做同樣的智能DOM差異?

回答

1

React的forceUpdate()不低於setState()

使用相同的智能DOM「版本比較」算法,使組件更新,同時足夠快的高性能應用程序可以預測的。

調用forceUpdate()將導致在組件上調用render(),跳過shouldComponentUpdate()。這將觸發子組件的正常生命週期方法,包括每個孩子的shouldComponentUpdate()方法。如果標記更改,React仍然只會更新DOM。

PS:是的,通常你應該儘量避免的forceUpdate()所有用途,只有從this.propsthis.state在組件的render()方法讀取。

相關問題