router
📍 Router
React Rout v6.4부터 지원하는 Router 객체 App.js에서 RouterProvider를 사용하여 Router를 설정한다.
import { Routes, Route, RouterProvider} from 'react-router-dom';
const routes = [
    { path: '/', element: <HomePage /> },
    { path: '/about', element: <AboutPage /> },
    
]
function Page() {
    return (
        <Routes>
            <Route path="/" element={<Home />} />
            <Route path="/about" element={<About />} />
        </Routes>
    )
}
exprt default function App() {
    return (
        <RouterProvider router={router}>
            <Page />
        </RouterProvider>
    )
}Layout 나누기
layout을 지정하지 않으면 기본적으로 페이지 전체가 렌더링된다. routes를 계층형을 구성하여 layout을 나눌 수 있다.
function Layout() {
    return (
        <div>
            <Header />
            <div>
                <Outlet />
            </div>
            <Footer />
        </div>
    )
}
const routes = [
    {
        element: <Layout />,
        children : [
            { path: '/', element: <HomePage /> },
            { path: '/about', element: <AboutPage /> },
        ]
    }
]
routes.test.tsx
const context = describe;
descibe('App', () => {
    function renderRouter() {
        const router = createTestHistory(createMemorySource(routes, [path]));
        render (
            <RouterProvider router={router} />
        );
    }
    context('when the current path is '/'', () => {
        if('renders the home page', () => {
            renderRouter('/');
            screen.getByText(/Welcome/);
        });
    })
})
✏️ 정리
공부한 내용
Last updated