라우터 기본형

// App4.jsx
import React from 'react';
import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
import Page1 from './pages/Page1';
import Page2 from './pages/Page2';

function App4() {
  return (
    <>
    <BrowserRouter>
      <nav>
        <Link to="/page1">페이지 1</Link> | {" "}
        <Link to="/page2">페이지 2</Link>
      </nav>
      <Routes>
        <Route path="/page1" element={<Page1 />} />
        <Route path="/page2" element={<Page2 />} />
      </Routes>
    </BrowserRouter>
    </>
  );
}

export default App4;
  • React Router v6 이후부터 element={<Page1 />} 형태가 표준화 되어. 이외의 다른 방법으로 컴포넌트 렌더링이 불가
  • <> </> Fragment (여러 개의 자식(child) 컴포넌트나 엘리먼트를 그룹화하면서, 불필요한 DOM 노드(예: <div> 태그)를 생성하지 않는 것)
  • React 컴포넌트는 항상 하나의 부모 엘리먼트만 반환할 수 있다는 규칙때문에 결과적으로 하나의 태크로 마무리 되어야한다.
  • Fragment는 “그룹화”라는 목적은 달성하면서, “추가적인 래퍼(Wrapper) 엘리먼트”는 생성하지 않도록 돕는 역할. 이는 특히 테이블(table)이나 CSS Flexbox/Grid를 사용할 때 유용