Link: a태그 대신 링크를 하고 싶을 때 useNavigate : 이벤트가 발생 하면서 이동 하고 싶을때
Link
a태그 대신 클라이언트 사이드 렌더링 방식을 사용 할 때 사용, a태그 사용하면 서버 사이드 렌더링 됨
import './App.css';
//Link를 import 해주고
import { Route,Routes,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';
function App() {
return (
<>
//아래처럼 Link태그에 렌더링하고싶은 페이지를 작성해 놓고 클릭하면 Routes 위에서 아래로 path를 확인하면서 to에 해당하는 컴포넌트를 렌더링 한다.
<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>
</>
)
}
export default App
useNavigate
링크가 아닌 함수 호출이나 이벤트가 발생 했을 때 원하는 페이지를 렌더링 하고 싶을때
import './App.css';
//useNavigate선언
import { Route,Routes,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';
function App() {
//useNavigate객체를 nav에 넣어줌
const nav = useNavigate();
// 버튼 킬릭시 nav객체에 가고싶은 path를 넣어주면 Routes를 읽어가며 일치하는 path를 확인 후 컴포넌트를 뿌려줌
const onClickButton=()=>{
nav("/new")
};
return (
<>
<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>
</>
)
}
export default App