리액트 프레임워크를 구성하는 기본 3요소는 가상 DOM, JSX구문, 컴포넌트 이다.
리액트 프로젝트는 항상 react와 react-dom 패키지가 필요하다.
위 그림과 같이 react는 리액트 앱이 동작하는 환경과 무괂나게 공통으로 사용하는 기능을 제공하는 패키지 이다. 반면에 react-dom/client
를 비롯하여 react-dom/server
, react-native
등 이른바 렌더러 라고 하는 패키지는 앱이 동작하는 환경(플랫폼)에 종속정인 기능을 제공하는 데 특화된 패키지이다.
렌더러 패키지의 경계에는 가상DOM이라는 메커니즘이 자리 잡고 있다.