如果我們希望在元件中儲存某個值,即使元件重新執行時還能保留,我們可以使用 React 提供的 useRef。
const ref = React.useRef(initialValue);
例如:
fuction Timer() {
const ref = React.useRef(null);
return null;
}
通常我們不需要去存取 DOM 物件,因為 DOM 的更新都交由 React 來處理,但有時候我們還是希望可以去存取 DOM 物件,例如偵測元素的寬高、位置等等。
useRef 可以搭配 ref 屬性來取得 DOM 物件,使用方式如下:
fuction App() {
const divRef = React.useRef(null);
useEffect(() => {
console.log(divRef.current);
});
return <div ref={divRef} />;
}
將透過 useRef 建立的物件設給 div 元素的 ref 屬性,我們就可以透過此物件的 current 屬性取得 div 元素物件。