1-1) public/data/
public
└── data
└── data.json
1-2) public/images/
폴더 구성)
public
└── images
├── Nav
│ └── logo.png
└── ProductDetail
├── Product1.png
└── Product2.png
JSX에서 파일 경로 사용하기)
// ProductDetail.js
import React from 'react';
const ProductDetail = () => {
return <img src="/images/PruductDetail/product1.png" alt="프로덕트1" />;
};
export default ProductDetail;
1-3) public/favicon.ico
public
└── favicon.ico
폴더 구성)
src
└── assets
├── Footer
└── Main
└── heart.jpg
2-1) src/components/
src
└── components
├── Footer
│ ├── Footer.js
│ └── Footer.scss
└── Nav
├── Nav.js
└── Nav.scss
2-2) src/pages/
src
└── components
├── Footer
│ ├── Footer.js
│ └── Footer.scss
└── Nav
├── Nav.js
└── Nav.scss
2-3) src/components/와 src/pages/../components의 차이
폴더 구성)
src
└── components
├── Footer
│ ├── Footer.js
│ └── Footer.scss
└── Nav
├── Nav.js
└── Nav.scss
차이점)
2-4) src/styles/
폴더 구성 1)
src
└── styles
├── common.scss
├── reset.scss
└── variables.scss
- reset.scss : 브라우저가 가지고 있는 기본 css 속성을 초기화 하기 위한 스타일링 파일을 말한다.
- common.scss : box-sizing, font-family등 공통으로 사용하는 css 속성을 정의하기 위한 스타일링 파일을 말한다.
- variables.scss : 공통으로 반복해서 사용되는 css속성에 대한 변수를 설정하는 스타일링 파일을 말한다.
폴더 구성 2)
src
└── styles
├── GlobalStyle.js
└── theme.js
- GlobalStyle.js : 공통으로 사용하는 css 속성을 정의하기 위한 파일을 말한다.
- theme.js : 공통으로 반복해서 사용되는 css 속성에 대한 변수를 설정하는 파일을 말한다.
2-5) src/Router.js
Router 코드)
// src/Router.js
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Login from './pages/Login/Login';
import Main from './pages/Main/Main';
const Router = () => {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Login />} />
<Route path="/main" element={<Main />} />
</Routes>
</BrowserRouter>
);
};
export default Router;
2-6) src/index.js
reset.scss, common.scss 예제)
// src/index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import Router from './Router';
import './styles/reset.scss';
import './styles/common.scss';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Router />);
gitignore 코드)
// .gitignore
.eslintcache