import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.jsx';
👉import { BrowserRouter } from 'react-router-dom';
ReactDOM.createRoot(document.getElementById('root')).render(
👉<BrowserRouter>
<App />
</BrowserRouter>
)
import { Routes, Route } from "react-router-dom";
import Home from "./pages/Home";
import New from "./pages/New";
import Diary from "./pages/Diary";
import Notfound from "./pages/Notfound";
// 1. "/" : 모든 일기를 조회하는 Home
// 2. "/new" : 새로운 일기를 작성하는 New
// 3. "/diary": 일기를 조회하는 Diary
function App() {
return (
<Routes>
<Route path="/" element={<Home />} />
<Route path="/new" element={<New />} />
<Route path="/diary" element={<Diary />} />
<Route path="*" element={<Notfound />} />
</Routes>
)
}
export default App
✔ Routes 태그 안에는 Route 밖에 못들어간다.
✔ Routes 태그 바깥에 있는 태그들은 모든 페이지 공통으로 들어간다.
👉import { Routes, Route, Link } from "react-router-dom";
import Home from "./pages/Home";
import New from "./pages/New";
import Diary from "./pages/Diary";
import Notfound from "./pages/Notfound";
// 1. "/" : 모든 일기를 조회하는 Home
// 2. "/new" : 새로운 일기를 작성하는 New
// 3. "/diary": 일기를 조회하는 Diary
function App() {
return (
<div className="App">
<div>
👉<Link to={"/"}>Home</Link>
<Link to={"/new"}>New</Link>
<Link to={"/diary"}>Diary</Link>
</div>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/new" element={<New />} />
<Route path="/diary" element={<Diary />} />
<Route path="*" element={<Notfound />} />
</Routes>
</div>
)
}
export default App
👉import { Routes, Route, Link, useNavigate } from "react-router-dom";
import Home from "./pages/Home";
import New from "./pages/New";
import Diary from "./pages/Diary";
import Notfound from "./pages/Notfound";
// 1. "/" : 모든 일기를 조회하는 Home
// 2. "/new" : 새로운 일기를 작성하는 New
// 3. "/diary": 일기를 조회하는 Diary
function App() {
👉const nav = useNavigate();
const onClickButton = () => {
👉 nav("/new");
};
return (
<div className="App">
<div>
<Link to={"/"}>Home</Link>
<Link to={"/new"}>New</Link>
<Link to={"/diary"}>Diary</Link>
</div>
👉 <button onClick={onClickButton}>New 페이지로 이동</button>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/new" element={<New />} />
<Route path="/diary" element={<Diary />} />
<Route path="*" element={<Notfound />} />
</Routes>
</div>
)
}
export default App
...
function App() {
...
return (
<div className="App">
...
<Routes>
...
👉 <Route path="/diary/:id" element={<Diary />} />
<Route path="*" element={<Notfound />} />
</Routes>
</div>
)
}
export default App
import { useParams } from "react-router-dom";
const Diary = () => {
const params = useParams();
return (
<div className="Diary">{params.id}번 일기입니다&</div>
);
}
export default Diary;
import { useSearchParams } from "react-router-dom";
const Home = () => {
const [params, setParams] = useSearchParams();
return (
<div className="Home">{params.get("value")}홈</div>
);
}
export default Home;