[React] ๊ธฐ์ดˆ #3 (Router)

hosik kimยท2021๋…„ 10์›” 6์ผ
0

With CodeStates

๋ชฉ๋ก ๋ณด๊ธฐ
1/45
post-thumbnail

๐Ÿ’กRouter

SPA & Routing


  • SPA๋Š” ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์‚ฌ์‹ค ํ•œ ์ข…๋ฅ˜์˜ ํ™”๋ฉด๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ,
    Twittler์™€ ๊ฐ™์€ SPA๋ฅผ ๋งŒ๋“ค ๋•Œ, ๋ฉ”์ธ ํŠธ์œ— ๋ชจ์Œ ํŽ˜์ด์ง€, ์•Œ๋ฆผ ํŽ˜์ด์ง€, ๋งˆ์ด ํŠธ์œ— ํŽ˜์ด์ง€
    ๋“ฑ์˜ ํ™”๋ฉด์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ด ํ™”๋ฉด์— ๋”ฐ๋ผ "์ฃผ์†Œ"๋„ ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋‹ค๋ฅธ ์ฃผ์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์„ "๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝํ•œ๋‹ค."๋ผ๋Š” ์˜๋ฏธ๋กœ
    ๋ผ์šฐํŒ…(Routing) ์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • React ์ž์ฒด์—๋Š” ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ง์ ‘ ์ฃผ์†Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ทฐ๊ฐ€
    ๋ณด์ด๊ฒŒ ๋” ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.
  • React SPA์—์„œ๋Š” ๋ผ์šฐํŒ…์„ ์œ„ํ•ด React Router๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

React Router ํ™œ์šฉ


React Router ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  1. Router : BrowserRouter
    • ๋ผ์šฐํ„ฐ ์—ญํ• 
  2. Router matchers : Switch, Route
    • ๊ฒฝ๋กœ๋ฅผ ๋งค์นญํ•ด์ฃผ๋Š” ์—ญํ• 
  3. Router changers : Link
    • ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์—ญํ• 
  • ์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” React Router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋”ฐ๋กœ ๋ถˆ๋Ÿฌ์™€์•ผํ•œ๋‹ค.

React Router ์‚ฌ์šฉ ํ™˜๊ฒฝ ์„ธํŒ…

  1. react-router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
// simpleroute ํด๋”์— React App ์„ค์น˜
$ npx create-react-app simpleroute
$ cd simpleroute

// react-router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
$ npm install react-router-dom
  1. App.js ๋กœ react-router ์ปดํฌ๋„ŒํŠธ ๊บผ๋‚ด์˜ค๊ธฐ
import React from "react";
import { BrowserRouter, switch, Route, Link } from "react-router-dom";

exprot default function App() {
  return ( ... )
}
profile
์•ˆ๋˜๋ฉด ๋  ๋•Œ๊นŒ์ง€๐Ÿ‘Œ

0๊ฐœ์˜ ๋Œ“๊ธ€