단순 코드 기록/React

React_라우터_링크와 에러페이지

일일일코_장민기 2024. 3. 20. 16:13
728x90

App

import HomePage from "./pages/Home"
import Products from "./pages/Products"
import RootLayout from "./pages/root";
import Error from "./pages/Error";
import { createBrowserRouter, RouterProvider } from "react-router-dom"

const router = createBrowserRouter(           //여러 사이트를 연결하기 때문에 배열로 정렬
  [{
    path: "/",
    element: <RootLayout/>,
    errorElement: <Error/>,                   //연결되지 않은 페이지일 경우, 이동
    children: [
      {path: "/", element: <HomePage/>},
      {path: "/products", element: <Products/>},
    ]
  }]
);

export default function App(){

  //1. npm install react-router-dom

  return(
    <>
      <h1>App</h1>
      <RouterProvider router={router}></RouterProvider>
    </>
  )

}

 

Error

import MainNavigation from "../components/MainNavigation"

export default function Error(){
    return(
        <>
            <MainNavigation></MainNavigation>
            <hr></hr>
            <h1>Error페이지</h1>
        </>
    )
}

 

MainNavigation

import { Link } from "react-router-dom";

export default function MainNavigation(){
    return(
        <>
            <Link to="/">Home</Link><br></br>
            <Link to="/products">Products</Link><br></br>
            <Link to="/error">Error</Link><br></br>
        </>
    )
}

 

Home

import { Link } from "react-router-dom"

export default function Home(){
    return(
        <>
            <h1>My Home Page</h1>
            <Link to="/">Home</Link>
            <Link to="/products">Products</Link>

        </>
    )
}

 

root

import { Outlet } from "react-router-dom";
import MainNavigation from "../components/MainNavigation"
export default function RootLayout(){
    return(
        <>
        <MainNavigation></MainNavigation>
        <hr></hr>
        <Outlet></Outlet>
        </>
    )
}

 

products



export default function Products(){
    return(
        <>
            <h1>The Products Page</h1>
        </>
    )
}

 

 

'단순 코드 기록 > React' 카테고리의 다른 글

React_동적 라우팅_useParams  (0) 2024.03.21
React_라우터_링크 시 효과 부여(NavLink) / 버튼 이벤트 링크(useNavigate)  (0) 2024.03.21
React_router  (0) 2024.03.20
React_JSON 서버 설치  (0) 2024.03.20
React_axios  (0) 2024.03.20