ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
*์ค์น :
npm install react-router-dom@6
*์ธํ : index.js
import { BrowserRouter } from "react-router-dom";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
ํ์ด์ง ๋๋๊ธฐ
(App.js)
import { Routes, Route, Link, useNavigate, Outlet } from 'react-router-dom' //import
function App(){
return (
(์๋ต)
<Routes> // Routes ์์ Route๋ฅผ ์์ฑ ํ ๊ฒฝ๋ก, ๋ณด์ฌ์ค html ๋ฃ์ด์ค๋ค.
<Route path="/detail" element={ <div>์์ธํ์ด์ง์</div> } />
<Route path="/about" element={ <div>์ด๋ฐ์ํ์ด์ง์</div> } />
</Routes>
)
}
ํ์ด์ง ์ด๋ ๋ฒํผ (LINK)
(์ ์์)
<Link to="/">ํ</Link>
<Link to="/detail">์์ธํ์ด์ง</Link>
(์ด๊ฑฐ ์)
function App(){
let navigate = useNavigate()
return (
(์๋ต)
<button onClick={()=>{ navigate('/detail') }}>์ด๋๋ฒํผ</button>
)
}
*๋ฒ์ธ : ์ด์ํ ๊ฒฝ๋ก๋ก ์ ์ํ์ ๋ ์๋ ํ์ด์ง ๋ณด์ฌ์ฃผ๊ณ ์ถ์ผ๋ฉด,
<Route path="*" element={ <div>์๋ํ์ด์ง์</div> } />
์๋ธ๊ฒฝ๋ก
//Route ์์ Route ๋ฃ๋๊ฑธ Nested routes๋ผ๊ณ ๋ถ๋ฆ
<Route path="/about" element={ <About/> } >
<Route path="member" element={ <div>๋ฉค๋ฒ๋ค</div> } />
<Route path="location" element={ <div>ํ์ฌ์์น</div> } />
</Route>
//About ์ปดํฌ๋ํธ ์์ div๋ฅผ ์ด๋๋ค ๋ณด์ฌ์ค์ง ํ๊ธฐ ํด์ผ๋จ
function About(){
return (
<div>
<h4>aboutํ์ด์ง์</h4>
<Outlet></Outlet>
</div>
)
}
URL ์ฌ๋ฌ๊ฐ ๋ง๋ค๊ธฐ (ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ)
<Route path="/detail/:id" element={ <Detail shoes={shoes}/> }/>
useParmas
//์ ์ URLํ๋ผ๋ฏธํฐ์ ์
๋ ฅํ ๊ฐ์ ธ์ค๊ธฐ ์ํ ํ
import { useParams } from 'react-router-dom' //import
function Detail(props){
let { id } = useParams();
let ์ฐพ์์ํ = props.shoes.find(function(x){
return x.id == id
});
return (
<div className="container">
<div className="row">
<div className="col-md-6">
<img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
</div>
<div className="col-md-6 mt-4">
<h4 className="pt-5">{์ฐพ์์ํ.title}</h4>
<p>{์ฐพ์์ํ.content}</p>
<p>{์ฐพ์์ํ.price}์</p>
<button className="btn btn-danger">์ฃผ๋ฌธํ๊ธฐ</button>
</div>
</div>
</div>
728x90
'๐Frontend > ๐React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํธ๋ฌ๋ธ ์ํ ] react-scripts ์(๋) ๋ด๋ถ ๋๋ ์ธ๋ถ ๋ช ๋ น ์คํํ ์ ์๋ ํ๋ก๊ทธ๋จ ๋๋ ๋ฐฐ์น ํ์ผ์ด ์๋๋๋ค. (0) | 2022.08.07 |
---|---|
[React] Redux-toolkit ์ค์น ๋ฐ ์ธํ (0) | 2022.08.06 |
[React] Redux? (0) | 2022.07.29 |
[React] onChange (0) | 2022.07.26 |
[React] Mapํจ์ (0) | 2022.07.26 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- CS ์คํฐ๋
- DESIGN
- ํฌ๋กค๋ง
- db
- ๋ฉ์ดํน ์ฑ๋ฆฐ์ง
- flask
- ํธ๋ฌ๋ธ ์ํ
- JWT
- API
- CS
- HTML
- sass
- react
- styled-components
- Python
- scss
- Wil
- ์๋ฒ
- Router
- JavaScript
- Redux
- ํญํด99
- git
- DB๋ชฝ๊ณ
- CSS
- Git Code
- Til
- ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๊ณ ๋ฆฌ์ฆ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
๊ธ ๋ณด๊ดํจ