- 深入理解React Router:從原理到實踐
- 李楊韜
- 329字
- 2021-04-16 16:10:51
3.2.4 useRef
在使用class類組件時,通常需要聲明屬性,用以保存DOM節點。借助useRef,同樣可以在函數組件中保存DOM節點的引用:

useRef返回一個可變的Ref對象,其 current 屬性被初始化為傳遞的參數(initialValue)。useRef返回的可變對象就像一個“盒子”,這個“盒子”存在于組件的整個生命周期中,其current屬性保存了一個可變的值。
useRef不僅適用于DOM節點的引用,類似于類上的實例屬性,useRef還可用來存放一些與UI無關的信息。useRef返回的可變對象,其current屬性可以保存任何值,如對象、基本類型或函數等。所以,函數組件雖然沒有類的實例,沒有“this”,但是通過useRef依然可以解決數據的存儲問題。如在2.1節,曾使用過useRef:

上例使用useRef返回了可變對象historyUnBlockCb,通過historyUnBlockCb.current保存了history.block的返回值。
注意,更改refObject.current的值不會導致重新渲染。如果希望重新渲染組件,則可使用useState,或者使用某種forceUpdate方法。
推薦閱讀
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- INSTANT FreeMarker Starter
- PHP+MySQL網站開發技術項目式教程(第2版)
- Django:Web Development with Python
- 假如C語言是我發明的:講給孩子聽的大師編程課
- Python 3破冰人工智能:從入門到實戰
- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- Visual C
- Learning Network Forensics
- Java編程技術與項目實戰(第2版)
- Java Web開發詳解
- 動手學數據結構與算法
- C++反匯編與逆向分析技術揭秘(第2版)
- Getting Started with Nano Server
- 深度學習原理與PyTorch實戰(第2版)