728x90
반응형
useRef
reference는 기본적으로 component의 어떤 부분을 선택할 수 있는 방법
document.getElementByID()와 같은 역할
useRef 예시1
const App = () => {
const input = useRef();
setTimeout(() => input.current.focus(), 5000);
return (
<div className="App">
<div>Hello</div>
<input ref={input} placeholder="hi" />
</div>
);
};
5초 뒤 input이 선택되어 focus 됨
useRef 예시2
const useClick = (onClick) => {
const element = useRef();
useEffect(() => {
if(element.current){
element.current.addEventListener("click", onClick);
}
return () => {
if(element.current){
element.current.removeEventListener("click", onClick);
}
}
}, []);
return element;
}
const App = () => {
const sayHello = () => console.log("say hello");
const title = useClick(sayHello);
return (
<div className="App">
<h1 ref={title}>Hello</h1>
</div>
);
};
React 16.8v 부터는 Hooks을 조건문, 반복문, 중첩함수 내에서 호출할 수 없기에 위와 같은 결과를 얻으려면 useEffect 내에서 이벤트 바인딩을 막고 undefinded를 리턴해야하지만 hooks 이해를 위해 위의 코드를 수정하지는 않을 것임
반응형
'프로그래밍 > React' 카테고리의 다른 글
[React] React Hooks (7) - useFadeIn (0) | 2023.02.02 |
---|---|
[React] React Hooks (6) - useBeforeLeave (0) | 2023.02.01 |
[React] React Hooks (4.1) - useEffect 활용법 (0) | 2023.01.30 |
[React] useEffect (0) | 2023.01.27 |
[React] React Hooks (3) - useTabs (0) | 2023.01.26 |