whatisthis?
React JS - Movie App project (part 3) ๋ณธ๋ฌธ
๐บ
์ง๋์๊ฐ ์งํ์ฌํญ
- props ์ด์ฉ
- component ๊ตฌ๋ถ (App.js / Movie.js / Home.js / Detail.js)
- ๋๋ ํฐ๋ฆฌ ๊ตฌ๋ถ (components / route)
1/ ์ฐ์ React Router์ ์ค์นํด์ค
npm i react-router-dom@5.3.0
2/ App.js์ ์ํฌํธํจ
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
BrowserRouter์ ์ํฌํธ. (Router, Switch, Route)
>> ๋๊ตฐ๊ฐ ์ด๋ฏธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด๋ ๊ฒ์.
3/ Router, Switch, Route ์ปดํฌ๋ํธ ์ด์ฉํ๊ธฐ
return (
<Router>
<Switch>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
Router>Switch>Route path="/"> Home(Component)
๐ป
๋๊ตฐ๊ฐ ์ฐ๋ฆฌ ์น์ฌ์ดํธ์ "/" url์ ์๋ค๋ฉด
Home์ ๋ณด์ฌ์ค (Component)
** Switch๋ route๋ฅผ ์ฐพ์์ฃผ๋ ์ญํ ์.
๐ป App.js ์ ์ฒด์ฝ๋
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Home from "./routes/Home";
function App() {
return (
<Router>
<Switch>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
}
export default App;
์ด์ , Route ์ปดํฌ๋ํธ๋ฅผ ํ๋ ๋ ์ถ๊ฐํด์
path="/movie"์ธ ๊ฒฝ์ฐ์๋ Datail ์ปดํฌ๋ํธ๊ฐ ์คํ๋๋๋ก ํด๋ณด์.
<Route path="/movie">
<Detail />
</Route>
์ ์ฒด ์ฝ๋ ๐ป
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Home from "./routes/Home";
import Detail from "./routes/Detail";
function App() {
return (
<Router>
<Switch>
<Route path="/movie">
<Detail />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
}
export default App;
๐ก Switch ์ปดํฌ๋ํธ๋ฅผ ๋ฃ์ด์ค ์ด์ ๋?
ํ๋ฒ์ ํ๋์ Route๋ง ๋ ๋๋งํ๊ธฐ ์ํด์.
cr: https://reactrouter.com/docs/en/v6/getting-started/tutorial
์ด์ , Movie.js๋ก ๋์ด์์
title ๋ถ๋ถ์ ๋๋ฅด๋ฉด "/movie"๋งํฌ๋ก ์ด๋ํ๋๋ก ๋ง๋ค์ด๋ณด์.
์๋๋๋ก๋ผ๋ฉด,
<a href="/movie">๋ฅผ ์ฌ์ฉํ์๋ค.
๋จ, aํ๊ทธ๋ก ์ด๋ํ๋ ๊ฒ์ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ๋๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ด๋ค.
๋คํํ๋ refresh์์ด๋ ํ์ด์ง ์ด๋์ด ๊ฐ๋ฅํ Link ์ปดํฌ๋ํธ๊ฐ react-router-dom์ ์กด์ฌํ๋ค!
import { Link } from "react-router-dom";
์ฐ์ Link ์ปดํฌ๋ํธ๋ฅผ ์ํฌํธํด์จ๋ค.
// Movie.js ์ค๋ต
<h2>
<Link to="/movie">{title}</Link>
</h2>
๊ทธ๋ฆฌ๊ณ h2 ์์ Link ์ปดํฌ๋ํธ (to = "URL")๋ฅผ ์ฌ์ฉํ๋ค.
+) ์ฐธ๊ณ ๋ก, Route ์์ ์ง์ html์ ์ ๋ ฅํด์ค๋ ๋๋ค.
<Switch>
<Route path="/hello">
<h1>Hello</h1>
</Route>
</Switch>
๐ ๋ค์ step > ๋ค์ด๋๋ฏน(๋์ ) URL ์์ฑ
Ref.
Free Lecture
'PROJECT > WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React JS - Movie App project (part 4-2) (0) | 2022.02.22 |
---|---|
React JS - Movie App project (part 4) (0) | 2022.02.19 |
React JS - Movie App project (part 2) (0) | 2022.02.19 |
React JS - Movie App project (part 1) (0) | 2022.02.19 |
ํ์คํ ์น ํ๋ก์ ํธ - ์งํ์ฌํญ ๊ธฐ๋ก (0) | 2022.02.11 |