Skip to content

Files

72 lines (50 loc) ยท 2.1 KB

ReactRouter.md

File metadata and controls

72 lines (50 loc) ยท 2.1 KB

React Router ๐Ÿ•ต๏ธโ€โ™‚๏ธ

์„ค๋ช…

React Router๋ž€?

์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€(SPA) ์•ˆ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ํ˜•ํƒœ์ด๋‹ค.

SPA๋ž€? ๐Ÿ•ต๏ธโ€โ™‚๏ธ

SPA๋ž€ Single Page Application ์˜ ์•ฝ์ž๋กœ ๋ง ๊ทธ๋Œ€๋กœ ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋‚˜์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งํ•œ๋‹ค. ๊ธฐ์กด์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ๋Š”, ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์†๋„๋ฉด์—์„œ SPA ๋ณด๋‹ค ๋”์šฑ ๋А๋ฆฐ ๋ชจ์Šต์„ ๋ณด์ธ๋‹ค.


์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•

๋จผ์ € ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ํ›„ ๋ผ์šฐํ„ฐ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ ํ•œ๋‹ค.

$ cd router-tutorial
$ yarn add react-router-dom

๋ผ์šฐํ„ฐ๋ฅผ ์ ์šฉํ•  ๋• index.js ์—์„œ BrowserRouter ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์šฉํ•œ๋‹ค.

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom'; // BrowserRouter ๋ฅผ ๋ถˆ๋Ÿฌ์˜ด
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

// App ์„ BrowserRouter ๋กœ ๊ฐ์Œˆ
ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
);

serviceWorker.unregister();

ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ

ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ์ •์˜ํ•  ๋•Œ, ์œ ๋™์ ์ธ ๊ฐ’์„ ์ „๋‹ฌํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ๋กœ ๋‚˜๋ˆ ์งˆ ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ: /profiles/velopert
์ฟผ๋ฆฌ: /about?details=true
  • ํŒŒ๋ผ๋ฏธํ„ฐ : ํŠน์ • id๋‚˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์กฐํšŒ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉ
  • ์ฟผ๋ฆฌ : ํŠน์ • ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์š”์ฒญ์„ ํ•  ๋•Œ ํ•„์š”ํ•œ ์˜ต์…˜์„ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ

์„œ๋ธŒ ๋ผ์šฐํŠธ

์„œ๋ธŒ ๋ผ์šฐํŠธ๋Š” ๋ผ์šฐํŠธ ๋‚ด๋ถ€์˜ ๋ผ์šฐํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ทธ ์•ˆ์— ๋˜ Route ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•˜๋ฉด ๋œ๋‹ค.


useReactRouter

Router ๋ฅผ Hook ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ useReactRouter ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

$ yarn add use-react-router

์ถœ์ฒ˜ : ํŒจ์ŠคํŠธ์บ ํผ์Šค ๊ฐ•์˜ - ๋ฒจ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” React Router