link 태그
<Link to="/seo/main"></Link>
사용자가 클릭해서 페이지를 이동하도록 할 때 사용하고
하이퍼링크 텍스트나 페이지를 이동하는 버튼, 이미지 등에 사용하면 되겠죠?
대부분의 경우 Link 만으로도 충분하다.
웹 앱을 만들고 싶을때, 웹 페이지 안에서 스무스하게 작동시키고 싶을때(클릭시 바로 이동해야 할 때)
ex)nav bar, aside menu등,
Navigate
특정 경로에서 렌더링 시점에 다른 페이지로 이동시키고 싶을 때 사용한다.
(리다이렉트)
ex)
- 쇼핑몰의 회원 전용 페이지에 로그인없이 들어와서 로그인 페이지로 리다이렉트하는 경우
- 쇼핑몰의 상품 상세 페이지에서 제품이 품절되었거나 삭제되어서 다른 페이지로 이동시키는 경우
useNavigate 훅
const navigate = useNavigate();
const goToLogin = () => {
navigate('/seo/main');
};
useNavigate는 웹 페이지 이동 시 추가적인 로직이 필요한 경우에 사용한다.
즉, 특정한 코드의 실행이 끝나고 나서 페이지를 이동시키고 싶을 때 사용하면 된다.
ex) 로그인 버튼 클릭시, 회원가입 제출 버튼 클릭,
- 쇼핑몰에서 장바구니에 담기를 눌렀을 때 리퀘스트를 보내고 장바구니 페이지로 이동시키는 경우
- 쇼핑몰에서 결제하기 버튼을 누르고 나서 모든 결제가 완료된 후에 페이지를 이동시키는 경우
- 리다이렉트된 로그인 페이지에서 로그인을 완료한 후에 처음 진입했던 페이지로 돌아가는 경우
둘 다 웹사이트 내에서 이동할때 사용하는데 이 둘의 차이점은 뭘까?
우선 제일 중요한건 어떠한 조건이 걸렸나, 걸리지않았냐가
제일 중요하다!!
예를 들어서 link(a태그)는 어떤 조건없이 그냥 누르면
바로 넘어갈때 사용하고,
useNavigate는
ex. ID - @ 포함 / PW - 5글자 이상/
이런식으로 어떤 조건이 포함되어있을때 사용한다.
그래서 회원가입 버튼은 어떠한 조건이 걸려있지않으니,
link태그지만 회원가입 폼을 작성한 후, 사용하는
<제출하기, 완료> 버튼은 useNavigate 훅인 것이다.
'개발이야기 > React.js' 카테고리의 다른 글
React에서 Click 한 메뉴만 활성화하는 법 (한글 및 띄어쓰기 메뉴 해결 방법) (0) | 2022.05.03 |
---|---|
[react] 프로젝트 초기세팅 (0) | 2022.05.03 |
[React] map() (2) | 2022.04.17 |
[React] SPA (2) | 2022.03.17 |
[React] react (Virtual DOM, components, jsx) (0) | 2022.03.15 |