react hooks中使用useState和useRef的區別


useState 的坑:

  修改state后,如果直接調用此state,會發現state的值未發生改變。

  當調用setState時,react是異步更新state的,如果setState后立即獲取state的值,此時state尚未更新,因此為舊的狀態。

useRef 總共有兩種用法:

  1、獲取子組件的實例

   2、在函數組件中的一個全局變量,不會因為重復 render 重復申明, 類似於類組件的 this.xxx

  有些情況下,我們需要保證函數組件每次 render 之后,某些變量不會被重復申明,比如說 Dom 節點,定時器的 id 等等。

  在類組件中,我們完全可以通過給類添加一個自定義屬性來保留,比如說 this.xxx, 但是函數組件沒有 this,我們就需要使用 useRef 來實現。

區別:

  1、useState觸發重新渲染,useRef不觸發。

  2、useState異步更新其值,useRef同步更新。


免責聲明!

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



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