state 和 props 之間的區別


setState() 會對一個組件的 state 對象安排一次更新。當 state 改變了,該組件就會重新渲染。

 

 props(“properties” 的縮寫)和 state 都是普通的 JavaScript 對象。它們都是用來保存信息的,這些信息可以控制組件的渲染輸出,而它們的一個重要的不同點就是:props 是傳遞組件的(類似於函數的形參),而 state 是在組件被組件自己管理的(類似於在一個函數內聲明的變量)。

我應該如何更新那些依賴於當前的 state 的 state 呢?

調用 setState 其實是異步的 —— 不要指望在調用 setState 之后,this.state 會立即映射為新的值。如果你需要基於當前的 state 來計算出新的值,那你應該傳遞一個函數,而不是一個對象

給 setState 傳遞一個對象與傳遞一個函數的區別是什么?

傳遞一個函數可以讓你在函數內訪問到當前的 state 的值。因為 setState 的調用是分批的,所以你可以鏈式地進行更新,並確保它們是一個建立在另一個之上的

為什么 React 不同步地更新 this.state

開始重新渲染之前,React 會有意地進行“等待”,直到所有在組件的事件處理函數內調用的 setState() 完成之后。這樣可以通過避免不必要的重新渲染來提升性能。

 

 

 

參考:https://react.docschina.org/docs/faq-state.html#what-is-the-difference-between-state-and-props


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM