- 리액트에서 ref란 특정 DOM을 선택해야 할 때 직접 접근할 수 있게 해주기 위해 사용한다.
- 클래스 컴포넌트에서는 React.createRef 함수를 사용한다.
- 함수 컴포넌트에서는 useRef 함수를 사용한다.
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
}
componentDidMount() {
this.myRef.current.focus();
}
render() {
return <input ref={this.myRef} />;
}
}
import React, { useRef, useEffect } from 'react';
const MyComponent = () => {
const myRef = useRef();
useEffect(() => {
myRef.current.focus();
}, []);
return <input ref={myRef} />;
}
- 클래스와 함수 컴포넌트 둘다 ref를 사용해야 할 때 current를 붙인다. 궁금해져서 검색을 해보았다.🧐
- 리액트 컴포넌트에서 불필요한 재렌더링을 하지 않게 해주고 가변 값 저장 및 DOM 요소를 효율적으로 처리할 수 있도록 한다고 한다.
- 리액트에선 태그들의 class 이름을 할당할 때 className을 사용해야 한다.
- class가 자바스크립트의 예약어 이기 때문이다.
- 리액트에선 label태그에서 for을 사용하려고 할 때 htmlFor로 사용해야 한다.
- for이 자바스크립트의 예약어 이기 때문이다.
- https://react.vlpt.us/basic/07-useState.html (벨로퍼트와 함께하는 모던 리액트)
- https://youtu.be/aYwSrzeyUOk?si=wmfMhWn4YrhixeZV (제로초 유튜브)
- https://react.dev/learn (리액트 공식문서)