Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

React - react router dom 본문

React

React - react router dom

보람- 2023. 11. 27. 15:13

목차

1. react router dom 

2. BrowserRouter

3. Routes, Route

4. Link


 

 

 

 

1. react router dom 

- 설치하기

npm install react-router-dom@6

 

 

 

 

2. BrowserRouter

 

// index.js

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

const root = ReactDOM.createRoot(document.getElementById("root"));

root.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>
);

 

 

 

 

 

3. Routes, Route

- 위치가 변경될때마다 <Routes>의 하위경로를 찾아 일치하는 항목을 랜더링해준다.

// app.js

import { Routes, Route } from "react-router-dom";
import Main from "./page/Main";

function App() {
    return (
        <div className="App">
            <Routes>
                <Route path="/" element={<Main />} />
            </Routes>
        </div>
    );
}

export default App;

 

 

 

 

 

4. Link

- <a href> 와 같은 기능

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

const Main = () => {
    return (
        <div>
            Main
            <Link to={"/game"}>지뢰찾기</Link>
            <Link to={"/game2"}>가위바위보</Link>
        </div>
    );
};

export default Main;

 


※ react router 공식사이트

https://reactrouter.com/en/main/start/concepts

 

Main Concepts v6.20.0

History Action - One of POP, PUSH, or REPLACE. Users can arrive at a URL for one of these three reasons. A push when a new entry is added to the history stack (typically a link click or the programmer forced a navigation). A replace is similar except it re

reactrouter.com

const root = ReactDOM.createRoot(
  document.getElementById("root")
);
root.render(
  <BrowserRouter>
    <Routes>
      <Route path="/" element={<App />}>
        <Route index element={<Home />} />
        <Route path="teams" element={<Teams />}>
          <Route path=":teamId" element={<Team />} />
          <Route path="new" element={<NewTeamForm />} />
          <Route index element={<LeagueStandings />} />
        </Route>
      </Route>
      <Route element={<PageLayout />}>
        <Route path="/privacy" element={<Privacy />} />
        <Route path="/tos" element={<Tos />} />
      </Route>
      <Route path="contact-us" element={<Contact />} />
    </Routes>
  </BrowserRouter>
);