create-react-app의 index.js vs App.js
`create-react-app` (CRA)은 React 기반 프로젝트를 시작할 때 주로 사용하는 도구입니다. CRA를 사용하여 새 프로젝트를 생성하면, 기본적으로 `App.js`와 `index.js` 두 개의 주요 파일이 생성됩니다. 각 파일의 용도는 다음과 같습니다:
1. **index.js**:
- **진입점**: 프로젝트의 진입점(entry point) 역할을 합니다. 여기서 React 코드는 실제 웹 페이지의 DOM에 렌더링됩니다.
- **ReactDOM.render()**: 이 함수는 React 컴포넌트를 DOM에 연결하는 역할을 합니다. `index.js`에서는 `<App />` 컴포넌트가 `root`라는 DOM 요소에 연결되도록 설정됩니다.
- **Service Worker**: CRA는 Progressive Web App(PWA) 지원을 위해 service worker 설정을 포함할 수 있습니다. 이는 `index.js`에서 설정되거나 제거될 수 있습니다.
```jsx
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
```
2. **App.js**:
- **주요 컴포넌트**: 프로젝트의 주요 React 컴포넌트입니다. 초기에는 간단한 화면을 출력하도록 설정되어 있지만, 대부분의 개발자는 이 파일을 애플리케이션의 주요 레이아웃 및 로직을 포함하도록 확장합니다.
- **기본 레이아웃**: 여기서 애플리케이션의 헤더, 푸터, 네비게이션 등의 주요 레이아웃 요소를 설정할 수 있습니다.
- **스타일 및 로고**: 초기 `App.js`에는 CRA의 로고와 관련된 스타일이 포함되어 있습니다. 프로젝트의 요구 사항에 맞게 이 부분을 수정하거나 제거할 수 있습니다.
```jsx
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
{/* ... */}
</div>
);
}
export default App;
```
결론적으로, `index.js`는 애플리케이션을 웹 페이지에 연결하는 역할을 하며, `App.js`는 애플리케이션의 주요 내용 및 레이아웃을 정의하는 역할을 합니다.
댓글
댓글 쓰기