react+vue
[react] 라우팅하기...3: useParams()
h-yujin
2022. 10. 5. 19:09
java의 @PathVariable처럼 주소에 정보를 담아 그 값을 가져올 수 있다.
방법은 라우터에서 미리 param을 선언해 주고 그 주소의 결과페이지에서 사용하면 된다.
- App.js
import './App.css';
import Footer from './components/footer';
import Header from './components/header';
import HomePage from './pages/homePage';
import { Route,Routes } from 'react-router-dom';
import Login from './pages/login';
function App() {
return (
<div>
<Header />
<Routes>
<Route path="/" exact={true} element={<HomePage />} />
<Route path="/login/:id" exact={true} element={ <Login/>}/>
</Routes>
<Footer />
</div>
);
}
export default App;
Route태그의 path속성에 주소와 함께 param을 선언해 준다.
형식은 path = “주소/:param”이다.
- loginPage.js
import {useParams} from "react-router-dom";
function Login(props) {
console.log(useParams());
return <div>로그인페이지</div>
}
export default Login;
콘솔창에 params가 뜨는것을 볼 수 있다.
만약 id값만 가져오고 싶다면
import React from "react";
import {useParams} from "react-router-dom";
function Login(props) {
const { id } = useParams();
console.log(id);
return <div>로그인페이지</div>
}
export default Login;
가져오고 싶은 변수를 중괄호 안에 싸서 가져올 수 있다.