document.getElementById
나 document.querySelector
를 사용해 특정 요소를 선택하고, 해당 요소의 속성이나 스타일을 변경useEffect
는 컴포넌트가 처음 렌더링된 후와 업데이트된 후에 실행useEffect
는 컴포넌트의 렌더링 후에 실행되기 때문에, DOM이 완전히 생성된 상태에서 실행
그러므로 이 시점에서 document 객체를 사용하여 DOM에 접근하고 조작할 수 있다.
예시
useEffect(() => {
const element = document.getElementById('my-element');
if (element) {
element.style.backgroundColor = 'yellow';
}
}, []);
위 예제에서는 컴포넌트가 렌더링된 후에 document.getElementById
를 사용하여 특정 요소를 선택하고, 해당 요소의 배경색을 변경
리액트의 useEffect
안에서 document
객체를 사용할 수 있는 이유는 useEffect
가 컴포넌트의 렌더링 후에 실행되기 때문이다.
이 시점에는 DOM이 완전히 생성된 상태이므로, 안전하게 document
객체를 사용하여 DOM을 조작할 수 있다.
이를 통해 DOM을 조작하거나 외부 API 호출 등 다양한 부수 효과를 처리할 수 있다.