[Code Camp 4주차] useRef

FE 08김우중·2022년 7월 31일
0

특정 태그를 자바스크립트로 접근할때 항상 document.getElementById()를 사용했었다.
하지만 리액트에서는 virtual DOM(가상돔)을 다루기 때문에 저 방법으로 접근하면 문제가 될수도 있다. 그러면 리액트에서는 어떻게 접근을할까??

클래스형 컴포넌트 Ref

클래스형 컴포넌트에서는 createRef() 메서드를 이용해 태그에 접근한다

// 메서드 임포트
import { createRef } from 'react'

// Ref 생성
inputRef = createRef()

// Ref를 적용하고싶은 태그
<input type = "text" ref = { this.inputRef } />

//태그에 접근해서 실행
componentDidMount() {
	this.inputRef.current?.focus()
}

함수형 컴포넌트 Ref

함수형 컴포넌트에서는 useRef 훅을 이용해 태그에 접근한다

// 메서드 임포트
import { useRef } from 'react'

// Ref 생성
const inputRef = useRef()

// Ref를 적용하고 싶은 태그
<input type ="text" ref = { inputRef } />

//태그에 접근해서 실행
useEffect(() => {
	inputRef.current?.focus()
})
profile
새내기 개발자

0개의 댓글