작성
·
11
0
혹시 main.jsx파일에서의
ReatDom.creatRoot(
document.getElementById("root")
).render(<App/>);에서 id값을 따로 root로 설정해주지 않아도 render함수안에 있는 인자 값으로 root가 설정되는 걸까요? 어떻게 root로 설정하고 app을 루트로 만들어줬는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
das mi님이 질문하신 내용은 React 18에서의 새로운 렌더링 방식과 관련이 있습니다. React 18에서는 ReactDOM.createRoot 메서드를 사용하여 앱의 최상위 컴포넌트인 <App />을 렌더링하는 방식을 채택하고 있습니다.
기본적으로 HTML 파일 내에 <div id="root"></div>가 위치하며, 이 요소가 React 애플리케이션을 렌더링하는 대상이 됩니다. 당신이 적어주신 코드:
ReactDOM.createRoot(document.getElementById("root")).render(<App/>);
해당 코드는 document.getElementById("root")를 호출하여 이 root라는 ID를 가진 DOM 요소를 선택하고, React 애플리케이션의 엔트리 포인트로 설정하게 됩니다. createRoot 메서드는 이 요소를 기반으로 React의 컴포넌트 트리를 관리하고, 이를 통해 <App /> 컴포넌트를 해당 요소에 렌더링합니다.
따라서 HTML 파일에서 id="root"가 포함된 요소가 이미 존재해야 하며, 그렇지 않으면 React 애플리케이션이 렌더링될 위치를 찾지 못하게 됩니다. 이 root 요소는 React 애플리케이션이 동작하는 영역을 정의하는 것입니다.
관련해서 ReactDOM.createRoot와 ReactDOM.render의 차이점이나 작동 방식을 설명한 다음의 답변이 도움될 수 있습니다:
1. React 18버전으로의 변경, createRoot 이해하기
- 설명: React 18의 변경 사항과 createRoot를 어떻게 활용해야 하는지를 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.