개발일기/리액트

[라우팅] react-router-dom 사용하여 hash router 적용하기

드루이쿠 2023. 7. 7. 17:58
728x90

1페이지로 만들었던 리액트 프로젝트에 화면을 하나 추가했다.

라우팅이 필요해졌다.

react-router-dom 을 사용해서 간단하게 처리해보자.

 

 

 

 

 

먼저 기존 App.tsx 파일을 확인해보자.

import React from 'react';
import Summary from "./dungeon/Summary";
import logo from '../diablo4_logo2.png';
import './App.scss';

function App() {
    return (
        <div className="App">
            <header className="App-header">
                <img src={logo} className="App-logo" alt="logo"/>             
            </header>
            <Summary/>
        </div>
    );
}

export default App;

헤더 아래 메인 컨텐트 1개 있는 구조이다.

 

 

 

 

 

이 코드에 router를 적용하기 위한 주요한 작업은  <Summary/> 부분을 RouterProvider 로 변경하는 것이다.

 

 

 

 

 

import React from 'react';
import {createHashRouter, RouterProvider} from "react-router-dom";
import Summary from "./dungeon/Summary";
import Area from "./Area";

import logo from '../diablo4_logo2.png';
import './App.scss';

const router = createHashRouter([
    {
        path: '/',
        element: <Summary/>
    },
    {
        path: '/area',
        element: <Area/>
    }
])

function App() {
    return (
        <div className="App">
            <header className="App-header">
                <img src={logo} className="App-logo" alt="logo"/>              
            </header>
            <RouterProvider router={router}/>
        </div>
    );
}

export default App;

 

 

 

 

createHashRouter 를 이용해서 RouterProvider 속성에 바인딩할 변수를 하나 만들어주고

<Summary/> 부분을 RouterProvider 로 변경 하였다.

 

 

 

 

https://leessony.github.io/diablo4

 

디아블로4 던전 가이드

 

leessony.github.io

 

 

 

 

 

참고문서

- https://reactrouter.com/en/main/routers/create-hash-router