CRA는 Next.js와 달리 html 파일이 있다
html 파일이 있다는 것도 혼란스러운데 public 폴더에 있다구요?
CRA 폴더 구조부터 머리에 담아두자!
React는 SPA이므로 하나의 html 안에서 컴포넌트를 통해 각 페이지를 구분한다. 따라서 id가 root인 src / index.js 컴포넌트만을 html에서 불러오고 있다.
PWA (Progressive Web Apps) ? 웹과 네이티브 앱이 가진 단점을 개선하는 새로운 형태의 웹앱
App.js
안의 컴포넌트들에 대한 CSS 파일src / index.js 파일에 import 되어 불러와진다. 해당 프로젝트와 관련된 Theme, Globalstyle, Router 등을 설정할 수 있다.
index.js
안의 컴포넌트들에 대한 CSS 파일App.js
안의 App 컴포넌트
와 public / index.html
을 연결해주는 역할을 하는 파일ReactDOM.createRoot를 통해 root를 생성하고 실질적으로 public / index.js 파일을 rendering하도록 설정하는 파일이다.
import { Route, Routes } from 'react-router-dom';
import { lazy } from 'react';
const Detail = lazy(() => import('./pages/Detail'));
const Write = lazy(() => import('./pages/Write'));
const Router = () => {
return (
<Routes>
<Route path="/" element={<Main />} />
<Route path="/detail/:postId" element={<Detail />} />
<Route path="/write" element={<Write />} />
</Routes>
);
};
export default Router;
<참고 : https://velog.io/@ordidxzero/cra-project-structure
https://breakout-theworld.tistory.com/123 >