Programming/React
[React] Typescript + useRef (Forwarding Refs) : HTMLInputElement 요소 받아오기
aldrn29
2022. 6. 29. 02:02
리액트에서는 되도록 돔탐색을 하지 않는 것이 좋다고 한다. 그래서 useRef를 사용해보았다. 전달하는 대상이 Html 엘리먼트가 아닌 컴포넌트 타입이라면 ref를 전달하기 위해 아래와 같이 사용하는 것이 좋겠다!
useRef : HTMLInputElement 요소 받아오기
- import useRef
- React ref를 생성하고 ref 변수에 할당
- ref를 JSX 속성으로 지정해서 ref={ref}으로 전달
이러한 과정을 거치면, ref.current는 DOM 노드를 가리키게 된다!!
이전 코드
더보기
import React from "react";
const Test = () => {
const handleScroll = () => {
const screenHeight = document.querySelector("#intro").clientHeight;
...
}
return (
<div id="intro">
)
}
export default Test;
수정한 코드
import React, { useRef } from "react";
const Test = () => {
const ref = useRef<HTMLInputElement>();
const handleScroll = () => {
const screenHeight = ref.current.clientHeight;
...
}
return (
<div ref={ref}>
)
}
export default Test;
참고 문서
https://ko.reactjs.org/docs/forwarding-refs.html
Forwarding Refs – React
A JavaScript library for building user interfaces
ko.reactjs.org
728x90
728x90