๐กRouter
SPA & Routing
- SPA๋ ํ๋์ ํ์ด์ง๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์ฌ์ค ํ ์ข
๋ฅ์ ํ๋ฉด๋ง ์ฌ์ฉํ์ง ์์ผ๋ฉฐ,
Twittler์ ๊ฐ์ SPA๋ฅผ ๋ง๋ค ๋, ๋ฉ์ธ ํธ์ ๋ชจ์ ํ์ด์ง, ์๋ฆผ ํ์ด์ง, ๋ง์ด ํธ์ ํ์ด์ง
๋ฑ์ ํ๋ฉด์ด ํ์ํ ์ ์๋ค. ๋ํ ์ด ํ๋ฉด์ ๋ฐ๋ผ "์ฃผ์"๋ ๋ฌ๋ผ์ง๋ค.
- ์ด๋ ๊ฒ ๋ค๋ฅธ ์ฃผ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ณผ์ ์ "๊ฒฝ๋ก์ ๋ฐ๋ผ ๋ณ๊ฒฝํ๋ค."๋ผ๋ ์๋ฏธ๋ก
๋ผ์ฐํ
(Routing) ์ด๋ผ๊ณ ํ๋ค.
- React ์์ฒด์๋ ๋ผ์ฐํ
๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์, ์ง์ ์ฃผ์๋ง๋ค ๋ค๋ฅธ ๋ทฐ๊ฐ
๋ณด์ด๊ฒ ๋ ์ค์ ํด์ผํ๋ค.
- React SPA์์๋ ๋ผ์ฐํ
์ ์ํด React Router๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค.
React Router ํ์ฉ
React Router ์ฃผ์ ์ปดํฌ๋ํธ
- Router : BrowserRouter
- Router matchers : Switch, Route
- ๊ฒฝ๋ก๋ฅผ ๋งค์นญํด์ฃผ๋ ์ญํ
- Router changers : Link
- ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋ ์ญํ
- ์ ์ปดํฌ๋ํธ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ React Router ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฐ๋ก ๋ถ๋ฌ์์ผํ๋ค.
React Router ์ฌ์ฉ ํ๊ฒฝ ์ธํ
- react-router ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
// simpleroute ํด๋์ React App ์ค์น
$ npx create-react-app simpleroute
$ cd simpleroute
// react-router ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
$ npm install react-router-dom
- App.js ๋ก react-router ์ปดํฌ๋ํธ ๊บผ๋ด์ค๊ธฐ
import React from "react";
import { BrowserRouter, switch, Route, Link } from "react-router-dom";
exprot default function App() {
return ( ... )
}