반응형
useHistory란?
useHistory를 사용하면, 페이지 방문 기록을 쉽게 관리할 수 있으며 여러가지 내장 함수를 사용해 뒤로가기, 특정 페이지로 이동하기 등을 구현할 수 있습니다. 이 hook을 사용하려면 리액트 16.8 버전 이상이어야 합니다.
1. goBack() 사용하여 뒤로가기
useHistory 내장 함수인 goBack을 사용하면 뒤로가기를 쉽게 구현할 수 있습니다.
1) useHistory를 import
import React from 'react'
// 요기
import { useHistory } from 'react-router-dom';
function Login() {
return (
<div>
<div>로그인 페이지입니다.</div>
<button>로그인</button>
<button>뒤로가기</button>
</div>
)
}
export default Login
2) 변수를 하나 생성해서 useHistory 함수 저장
이제 history라는 변수에 페이지 방문 기록과 여러가지 함수가 오브젝트 자료형으로 담기게 됩니다.
import React from 'react'
import { useHistory } from 'react-router-dom';
function Login() {
// 요기
let history = useHistory();
return (
<div>
<div>로그인 페이지입니다.</div>
<button>로그인</button>
<button>뒤로가기</button>
</div>
)
}
export default Login
3) goBack 함수 적용
history에 goBack() 함수라는 게 존재하는 데 그 함수를 뒤로가기 버튼에 적용합니다.
import React from 'react'
import { useHistory } from 'react-router-dom';
function Login() {
let history = useHistory();
return (
<div>
<div>로그인 페이지입니다.</div>
<button>로그인</button>
<button onClick={ () => {
history.goBack();
} } >뒤로가기</button>
</div>
)
}
export default Login
2. push() 사용하여 특정 페이지로 이동하기
버튼을 클릭했을 때, 단순히 '뒤로가기'가 아닌 특정 페이지로 가고 싶다면 useHistory 내장 함수인 push를 사용하면 됩니다.
1) push 함수 안에 원하는 경로를 입력한다.
import React from 'react'
import { useHistory } from 'react-router-dom';
function Login() {
let history = useHistory();
return (
<div>
<div>로그인 페이지입니다.</div>
<button>로그인</button>
<button onClick={ () => {
history.push('/');
} } >뒤로가기</button>
</div>
)
}
export default Login
출처 : https://velog.io/@nemo/React-useHistory-%EB%92%A4%EB%A1%9C%EA%B0%80%EA%B8%B0
반응형
'IT > React' 카테고리의 다른 글
[React] URL 파라미터 가져오기, query string 추출 방법 2가지 (0) | 2022.05.26 |
---|---|
[React] 깃허브 페이지에 리액트 프로젝트 배포하기 (0) | 2022.05.20 |
React Router dom의 유용한 hooks들 (0) | 2022.05.20 |
React에서 TypeScript를 적용 후 "module.scss" import 했을 때 에러 (0) | 2022.05.19 |
React에서 onclick 이벤트에 매개 변수 전달하기 (0) | 2022.05.13 |
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻♂️🙇🏻♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)