React.createRef는 클래스 컴포넌트에서도 함수 컴포넌트의 useRef hooks처럼 사용 할 수 있는 방법이다.
useRef처럼 사용하기 때문에 current도 붙여줘야한다.
react에서 dom reference를 가져오는 방법
1. class에서 가져오기
input;
onRefInput = c =>{
this.input = c;
}
render(){
...
<input ref={this.onRefInput} />
...
}
2. hooks에서 가져오기
import {useRef} = from "react";
const inputRef = useRef(null);
//ref 사용하기
const use = e => {
inputRef.current.focus();
}
return (
...
<input type="text" maxLength={4} ref={inputRef}
...
)
근데 클래스 컴포넌트에서도 함수 컴포넌트처럼 가져오는 방법이 있다.
import React, {Component, createRef} from "react";
createRef를 import한다.
/*
onRefInput = c => {
this.input = c;
}
*/
//위의 코드를 대체한다.
input = createRef();
render(){
return (
<input ref={this.input} />
)
}
이렇게 하면 된다.
근데 사용할 때도 hooks와 같이 current를 사용해줘야한다.
this.input.current.focus(); 이렇게. current를 더 써줘야하니까 더 안좋은게 아니냐고 반문할 수도 있지만 hooks와 통일성이 있기 때문에 외울 것이 하나 줄어드는 장점을 가진다.
'코딩이야기 > 인터넷 강의' 카테고리의 다른 글
section4. 4-2. setTimeout넣어 반응속도체크 (0) | 2024.05.27 |
---|---|
section4. 4-1 React 조건문 (0) | 2024.05.27 |
section2. 3-9. React Devtools & 3-10. shouldComponentUpdate (0) | 2024.05.22 |
section2. 3-8. 숫자야구 Hooks로 전환하기(+useState lazy init) (0) | 2024.05.22 |
section2. 3-7 QnA (0) | 2024.05.21 |