今天的絕望在我的預料之內,但也是真的沒想到會這麼絕望。
總之,來談談useRef
吧。(實在也是不保證我自己有懂)
看到useRef
,就會很直覺地想到ref
,我在幾天前有稍微聊了一下,在這裡。
那麼,useRef
要拿來做甚麼呢?
我自己會把它分為兩種用法:
之前,我們用過字串和function的形式來存放ref
,但這次,我們可以直接把ref
存在useRef
裡面。
一樣,速速掠過!code的原始來源
import { useState, useEffect, useRef } from "react";
function App() {
const inputElement = useRef();
const focusInput = () => {
console.log(inputElement.current)
inputElement.current.focus();
};
return (
<>
<input type="text" ref={inputElement} />
<button onClick={focusInput}>Focus Input</button>
</>
);
}
export default App;
useRef的寫法,就是利用useRef()
來建立一個useRef(好好笑,這句話在講甚麼?)。()
裡面是這個ref
的初始值。
然後,就可以拿來用了。
const inputElement = useRef();
把剛剛建立的inputElement
放在input
的ref{}
裡面,這時候,inputElement
就跟input
綁定了。
return (
<>
<input type="text" ref={inputElement} />
<button onClick={focusInput}>Focus Input</button>
</>
);
接著我們來利用點擊事件實際操作看看我們綁定的ref
。
這裡特別需要注意的是,useRef返回的是一個物件,這個物件會有current
的屬性。current
的值才是我們要的東西。
這時候如果觸發了focusInput
這個function,就會focus剛剛綁定的input。
而console.log出來的東西,如大家所想,就是<input type="text">
沒錯!
const focusInput = () => {
console.log(inputElement.current)
inputElement.current.focus();
};
那麼,明天再來繼續談談第二種用法吧。
哈哈哈哈哈我到底有沒有搞懂阿哈哈哈哈哈。