SPA를 구성하는 프로젝트를 진행하던 도중, 다중 페이지를 구현하고 싶어 방법을 찾았는데
hook으로는 useNavigate가 있었고, Link 컴포넌트가 있었다.
Link
Link 컴포넌트는, HTML의 a태그와 역할이 비슷했는데, 차이점이 있다면 <a href = # ...> 로 사용되는 a태그는
페이지를 이동하고, 새로고침하는 것 까지가 하나의 과정인 반면에,
Link 컴포넌트는, 필요한 부분만 리렌더링을 거친다는 차이가 있었다.
역할이 다르다, MPA를 구현 할 때는 a href 를 사용하면 되는 법이다.
<Link to="/contact">contact 페이지로 이동하기</Link>
이렇게 이동하고자 하는 페이지의 링크를 입력해주면 된다. 그렇게 되면 다음과 같이 하이퍼링크처럼 표기가 된다.
useNavigate
useNavigate는 특정 조건에 맞을 때 페이지를 이동하는 경우에 사용한다.
그렇기 때문에 주로 이벤트 함수 내에서 사용한다.
const navigate = useNavigate();
<button onClick={() => {
navigate("/");
}}>Home으로 이동
이벤트 핸들러 내부에 존재하기 때문에 여러가지 조건을 부여해줄 수 있다.
이것이 가장 큰 차이점이다.
만약 직관적으로 페이지의 이동만을 요구하는 작업이라면 Link를 사용하는 게 조금 더 좋은 방안이 될 수 있겠다.
'React' 카테고리의 다른 글
2024.02.01 기록 (리액트 styled-component의 isActive) (0) | 2024.02.01 |
---|---|
2024.1.31 기록 ( props drilling) (0) | 2024.01.31 |
2024 .1 26 기록 redux (상태관리 라이브러리) (0) | 2024.01.25 |
2024.1.25 기록 ( 최적화를 위한 hook) (1) | 2024.01.25 |
2024.1.24 기록 (JavaScript closure 와 React useState) (1) | 2024.01.24 |