[React] 게시판 만들기 1일차

프로젝트의 목적

혼자서 공부할 겸 간단한 게시판 CRUD 기능을 가진 페이지를 만들어 보려고 한다.

이 프로젝트를 하는 학습 목적은 아래와 같다.

  • 리액트 Class형
  • Redux
  • react-router-dom

그동안 나는 리액트 함수형, 글로벌 스테이트는 Recoil, 라우팅은 nextjs를 이용해서 했었다. 그런데 회사에서는 이 기술들을 전혀 사용하지 않기 때문에 어쩔 수 없이 공부를 좀 해야겠다는 생각이 들었다..

타입스크립트는 제외하고 위의 3개만 빠르게 실습하면서 익혀보려고 한다.

페이지

기능

백엔드

디자인

react-router-dom 세팅

Next.js와 사용법이 사뭇 달라서 문서를 보면서 시행착오를 겪어가면서 세팅했다.

index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { BrowserRouter } from 'react-router-dom';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <BrowserRouter basename={process.env.PUBLIC_URL}>
      <App />
    </BrowserRouter>
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
  1. BrowserRouter를 임포트 하고 App 컴포넌트로 감싸주면 된다.
  2. BrowserRouter에 props로 basename={process.env.PUBLIC_URL}을 작성해줘야 한다.

index.js

import './App.css';
import { Route, Routes } from 'react-router-dom';
import Home from './components/Home';

function App() {
  return (
    <Routes>
      <Route path='/' element={<Home />} />
    </Routes>
  );
}

export default App;
  1. Routes, Route를 임포트 해준다
  1. Routes안에 Route를 배치해준다.

이렇게 세팅을 하면 첫화면에 Home 컴포넌트가 바로 보이게 된다.