官术网_书友最值得收藏!

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方法。

主站蜘蛛池模板: 乌什县| 南城县| 孟州市| 大关县| 建湖县| 年辖:市辖区| 淳安县| 德清县| 澳门| 墨竹工卡县| 东光县| 灵武市| 东乡县| 定远县| 东阳市| 万州区| 永安市| 磴口县| 荥经县| 温州市| 南木林县| 胶州市| 吴堡县| 冷水江市| 安泽县| 拜城县| 苏尼特右旗| 农安县| 石棉县| 白水县| 萝北县| 沅江市| 景洪市| 历史| 湖口县| 望城县| 红原县| 呈贡县| 鸡泽县| 融水| 方山县|