강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

das mi님의 프로필 이미지
das mi

작성한 질문수

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

5.2) React 컴포넌트

렌더링

작성

·

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.createRootReactDOM.render의 차이점이나 작동 방식을 설명한 다음의 답변이 도움될 수 있습니다:
1. React 18버전으로의 변경, createRoot 이해하기
- 설명: React 18의 변경 사항과 createRoot를 어떻게 활용해야 하는지를 설명하고 있습니다.

  1. index.js React 17, React 18 버전 질문
    • 설명: React 17과 18의 주요 차이점을 숙지하고, 설정과 관련한 주의를 환기시킵니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

das mi님의 프로필 이미지
das mi

작성한 질문수

질문하기