FE코크
탄산 가득 시원한 개발일지
FE코크
전체 방문자
오늘
어제
  • 분류 전체보기 (43)
    • 우아한테크코스 (22)
      • 우아한테크코스4기 (4)
      • 우아한테크코스3 (10)
      • 회고록 (8)
    • Web (0)
      • HTTP 웹 기본지식 (0)
    • JavaScript (2)
    • React.js (12)
    • 알고리즘 풀이 (2)
    • HTML, CSS (4)
    • 기타 (1)
      • 일상 (0)
      • 후기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Reactjs
  • 백준
  • CSS
  • react
  • 회고
  • 4기
  • Props
  • 재택하고싶은데
  • 우테코4기
  • react.js
  • 주간회고
  • 코어자바스크립트
  • 리액트
  • React.DOM
  • 우테코
  • 프리코스
  • state
  • 프론트엔드
  • 개발자
  • 레벨1회고
  • 알고리즘
  • 노마드코더
  • jsx
  • 자바스크립트
  • prop drilling
  • 우아한테크코스 3기
  • JavaScript
  • 우아한테크코스
  • 회고록
  • createRoot

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE코크

탄산 가득 시원한 개발일지

[ReactJS]리액트 react-router-dom / HashRouter, BrowserRouter, Route, Switch, Link
React.js

[ReactJS]리액트 react-router-dom / HashRouter, BrowserRouter, Route, Switch, Link

2021. 2. 10. 17:06

리액트 react-router-dom의 사용법에 대해 간단히 알아본다.
react-router-dom 패키지는 SPA을 구현할 때 사용 되어 지며 다음과 같은 패키지들은 용도를 구분하여 사용한다.
- react-router 웹 & 앱
- react-router-dom 웹
- react-router-native 앱

react-router-dom 

우선 react-router-dom을 설치한다.

npm install react-router-dom

 

완료 후 App.js에 BrowserRouter, Route, Switch, Link를 import 한다.

import {BrowserRouter, Route, Switch, Link} from "react-router-dom"

 

BrowserRouter, HashRouter, Route, Switch, Link은 다음과 같은 기능을 가진다.

BrowserRouter

- HTML5의 history API를 활용하여 URL과 UI를 동기화 하는 라우터.

 

HashRouter

- URL의 hash(#)를 활용한 라우터, 정적인 페이지에 적합하다. URL 주소에 #가 붙는다.

- 검색엔진으로 못 읽는 단점 때문에 거의 사용하지 않는다.

 

Route

- 요청받은 pathname에 해당하는 컴포넌트를 렌더링한다.

 

Switch

- 자식 컴포넌트 Route또는 Redirect중 pathname에 해당하는 첫번째 컴포넌트를 렌더링한다.

- BrowserRouter만 사용할 때와 다르게 매칭되는 하나의 요소만 렌더링한다.

 

Link

- 'a' 태그와 비슷, to 속성에 설정된 링크로 이동한다. 기록이 history 스택에 저장된다.

 

 

import React from "react";
import { BrowserRouter, Route, Link, Switch } from "react-router-dom";
import Home from "routes/Home";
import Profile from "routes/Profile";
import Page from "routes/Page";

function App() {
  return (
    <BrowserRouter>
      <nav>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/profile">Profile</Link>
          </li>
          <li>
            <Link to="/page">Page</Link>
          </li>
        </ul>
      </nav>
      <Switch>
        <Route exact path="/">
          <Home />
        </Route>
        <Route>
          <Profile />
        </Route>
        <Route>
          <Page />
        </Route>
      </Switch>
    </BrowserRouter>
  );
}

export default App;

 

참고

reactrouter.com/web/guides/quick-start

 

React Router: Declarative Routing for React

Learn once, Route Anywhere

reactrouter.com

velog.io/@kwonh/React-react-router-dom-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0

 

[React] react-router-dom 시작하기

안녕하세요이번 포스팅은 SPA앱을 만들 때 많이 사용되는 react-router-dom패키지에 대해 알아보겠습니다.create-react-app을 이용해 진행했습니다.react-router - 웹&앱react-router-dom - 웹react-router-native

velog.io

 

'React.js' 카테고리의 다른 글

[React] JSX  (0) 2022.06.15
[React] ReactDOM.createRoot는 뭘까?  (0) 2022.04.26
[ReactJS]노마드코더 리액트 기초-04. State  (0) 2021.01.21
[ReactJS]노마드코더 리액트 기초-03. JSX & PROPS  (0) 2021.01.19
[ReactJS]노마드코더 리액트 기초-02.리액트 Set up  (0) 2021.01.19
    'React.js' 카테고리의 다른 글
    • [React] JSX
    • [React] ReactDOM.createRoot는 뭘까?
    • [ReactJS]노마드코더 리액트 기초-04. State
    • [ReactJS]노마드코더 리액트 기초-03. JSX & PROPS
    FE코크
    FE코크
    공부한 내용을 적는 블로그

    티스토리툴바