Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 기초
- align-content
- 변수
- flex
- javascript
- 조건문
- 함수선언식
- 프론트엔드
- 화살표함수
- 속성
- properties
- justify-content
- 타입
- 함수
- 함수표현식
- Methods
- flex-direction
- 비교연산자
- for of
- 논리연산자
- for
- ELSE
- 문자열
- boolean
- typeof
- frontend
- 반복문
- for in
- flex-wrap
- if else
Archives
- Today
- Total
하얀 코딩
[React - 9] useNavigate 본문
useNavigate는 React Router v6부터 도입된 훅입니다.
이 훅은 컴포넌트 내에서 프로그래밍 방식으로 라우팅을 제어할 수 있게 해줍니다.
React Router v5 이전에서는 useHistory를 사용하여 이러한 동작을 수행했지만,
v6에서는 useNavigate가 그 역할을 대신하게 되었습니다.
import { useNavigate } from 'react-router-dom';
function MyComponent() {
const navigate = useNavigate();
const handleButtonClick = () => {
// 다른 경로로 이동
navigate('/about');
};
return (
<button onClick={handleButtonClick}>
Go to About
</button>
);
}
useNavigate의 navigate 함수에서 두 번째 매개변수로 사용할 수 있는 옵션은 다양합니다.
React Router v6에서 이러한 옵션은 주로 네비게이션의 동작을 수정하거나 추가 정보를 전달하는 데 사용됩니다.
두 번째 매개변수의 주요 옵션들은 다음과 같습니다:
replace
Boolean 값을 가집니다. 기본값은 false입니다.
이 옵션을 true로 설정하면 현재 항목을 히스토리 스택에서 교체합니다.
import { useNavigate } from 'react-router-dom';
function MyComponent() {
const navigate = useNavigate();
const handleReplaceClick = () => {
// 현재 히스토리 항목을 '/replacement-path'로 교체합니다.
navigate('/replacement-path', { replace: true });
};
return <button onClick={handleReplaceClick}>Replace Current History Entry</button>;
}
state
네비게이션 상태에 첨부할 추가 데이터입니다.
import { useNavigate } from 'react-router-dom';
function MyComponent() {
const navigate = useNavigate();
const handleStateClick = () => {
// '/path-with-state'로 이동하며 추가 상태 데이터 첨부
navigate('/path-with-state', { state: { from: 'MyComponent' } });
};
return <button onClick={handleStateClick}>Go with State</button>;
}
'React' 카테고리의 다른 글
[React - 11] Outlet (0) | 2023.08.24 |
---|---|
[React - 10] useParams (0) | 2023.08.23 |
[React - 8] 합성 이벤트(Synthetic Event) (0) | 2023.08.23 |
[React - 7] useRef (0) | 2023.01.03 |
[React - 6] useState (0) | 2023.01.02 |