일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 시뮬레이션
- 티스토리챌린지
- HTML5
- 오블완
- 수학
- 브루트포스
- js
- react-three/fiber
- REACT
- 자바스크립트
- 개발 회고
- State
- 토이 프로젝트
- 해시를 사용한 집합과 맵
- 프론트엔드
- 자바
- three.js
- 구현
- 회고
- 엔트리포인트
- 코딩일기
- Next.js
- styled-components
- 세그먼트 트리
- 모던 자바스크립트 튜토리얼
- 백준
- 자료 구조
- JavaScript
- poiemaweb
- 기본 문법
Archives
- Today
- Total
코딩하는 고릴라
[React] 라우터_셋팅, 기본 라우팅 본문
반응형
🦥 라우팅 - 셋팅, 기본 라우팅
페이지 나누는 방법
- 컴포넌트 만들어서 페이지 디자인
- 누가 /detail 요청시 해당 컴포넌트 출력
⇒ react-router-dom 라이브러리 사용하여 구현
react-router-dom 설치
- 설치
// 터미널
npm install react-router-dom@6
- 셋팅
// index.js
import { BrowserRouter } from "react-router-dom";
<BrowserRouter>
<App/>
</BrowserRouter>
- <App/> 컴포넌트를 <BrowserRouter>로 감싸준기
페이지 나누기
1. 요청에 따라 출력시킬 컴포넌트 나누기
// App.js
import { Routes, Route, Link} from 'react-router-dom'
function App(){
return (
<Routes>
<Route path="/" element={html~~} /> // 메인 페이지
<Route path="/detail" element={html~~~~} /> // detail 접속 요청시 element 출력
<Route path="/about" element={html~~~~~} />
<Route path="/asdf" element={컴포넌트} />
<Route /> // 페이지 개수만큼
</Routes>
)
}
- 사용할 컴포넌트 import
- <Routes> 안에 <Route> 작성
- <Route> 작성 : <Route path=”/url경로” element={ 보여줄 컴포넌트 } />
2. 페이지 이동 버튼 만들기
<Link to="/">홈</Link>
<Link to="/detail">상세페이지</Link>
- <Link to=”/url 경로”>링크 이름 달기</Link>
import "./App.css";
import { useState } from "react";
import { Routes, Route, Link } from "react-router-dom";
import productsData from "./data.js";
function App() {
return (
<div className="App">
<Nav />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/detail" element={<div>상세페이지</div>} />
</Routes>
</div>
);
}
function Nav() {
return (
<nav>
<div className="shop-title">My Shop</div>
<Link to="/">
<div className="shop-home">Home</div>
</Link>
<div className="shop-cart">Cart</div>
</nav>
);
}
function Home() {
let [products, setProducts] = useState(productsData);
return (
<>
<div>
<img src={process.env.PUBLIC_URL + "bg.png"} width="100%" />
</div>
<div className="product-list">
{products.map((element) => {
return <Product element={element} key={element.id} />;
})}
</div>
</>
);
}
function Product(props) {
return (
<div className="product">
<div className="product-img">상품 사진</div>
<div>{props.element.title}</div>
<div>{props.element.content}</div>
<div>{props.element.price}</div>
</div>
);
}
export default App;
반응형
'React' 카테고리의 다른 글
[React] URL parameter (1) | 2023.11.27 |
---|---|
[React] navigate, nested route, outlet (0) | 2023.11.27 |
[React] export, import (0) | 2023.11.26 |
[React] Input으로 state 변경 (0) | 2023.11.07 |
[React] 하위 컴포넌트에 props 전달 (0) | 2023.11.07 |