Coding/React

리액트 - 기본구조/App.jsx/npm run build

민톨이 2024. 3. 4. 11:26
728x90

- body 하단에서 main.jsx 모듈 연결하여 시작, jsx는 리액트 컴포넌트 확장자

// index.html
<body>
    <div id="root"></div>
    <script type="module" src="/src/main.jsx"></script>
  </body>
// main.jsx
import React from 'react'
import ReactDOM from 'react-dom/client'
// 상대경로로 App 컴포넌트 가져오기
import App from './App.jsx'
import './index.css'

// 엄격모드이므로 개발모드에서만 두번 렌더링하여 useEffect 스트레스 테스트
ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
)

 

App.jsx

  • root컴포넌트이며 메인페이지 역할
  • 컴포넌트 파일명은 파스칼 케이스(첫단어 대문자)
// App.jsx
import reactLogo from './assets/react.svg';
import viteLogo from '/vite.svg';
import './App.css';

export default function App() {
  return <h1>Hello World</h1>;
}

 

npm run build

- 기본설정은 서버루트가 기준이며 서버 base폴더 변경가능

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  base: '/react-todo/',
});