티스토리 뷰
function App() {
return (
<Router>
<Routes>
<Route path="/home" element={<Home />}>
<Route path="sub1" element={<Sub1 />} />
<Route path="sub2" element={<Sub2 />} />
<Route path="sub3" element={<Sub3 />} />
</Route>
</Routes>
</Router>
);
}
export default App;
function Home() {
return (
<div>
<h2>Home</h2>
<Outlet /> {/* 여기에 자식 경로 컴포넌트가 렌더링됩니다. */}
</div>
);
}
export default Home;
=> 이 경우 h2태그는 그대로이고 Outlet부분만 계속 path별로 바뀐다.
부모 컴포넌트에서 자식 컴포넌트로 이동하고 싶은 경우
1. Link 컴포넌트를 사용하여 이동하기
Link 컴포넌트를 사용하면, 사용자가 버튼이나 링크를 클릭했을 때 자식 컴포넌트로 쉽게 이동할 수 있습니다.
-
- <Link to="sub1 ">Go to Map</Link>: 이 링크를 클릭하면 /home/sub1 경로로 이동하며, Sub1컴포넌트가 Outlet에 렌더링됩니다.
2. useNavigate 훅을 사용하여 프로그래밍 방식으로 이동하기
useNavigate 훅을 사용하면, 코드에서 프로그래밍적으로 경로를 변경할 수 있습니다. 예를 들어, 버튼 클릭 시 자식 컴포넌트로 이동할 수 있습니다.
function Home() {
const navigate = useNavigate();
const goToSub1 = () => {
navigate('sub1'); // /home/sub1 경로로 이동
};
return (
<div>
<h2>Home</h2>
<button onClick={goToSub1}>Go to Map</button>
<Outlet />
</div>
);
}
- navigate(' sub1 '): 이 함수를 호출하면 /home/sub1 경로로 이동하게 됩니다.
요약
- Link 컴포넌트: 사용자 인터페이스에서 링크를 클릭하여 다른 경로로 쉽게 이동할 수 있도록 합니다. 이 방법은 일반적인 네비게이션 링크에 적합합니다.
- useNavigate 훅: 프로그래밍 방식으로 경로를 변경해야 할 때 사용합니다. 예를 들어, 버튼 클릭이나 특정 조건이 충족되었을 때 경로를 변경할 수 있습니다.
이 방법들을 사용하면 부모 컴포넌트에서 자식 컴포넌트로 쉽게 이동할 수 있으며, 사용자 경험을 개선할 수 있습니다.
'React' 카테고리의 다른 글
[React] React에서 react-i18next 사용하는 방법 (다국어 처리) (0) | 2024.09.09 |
---|---|
React.createContext() 란 (0) | 2024.08.14 |
리액트 라우터 - useNavigate (1) | 2024.08.12 |
리액트 컴포넌트 확장자 .js 와 .jsx의 차이점 (0) | 2024.08.12 |
React Hook 종류와 정리 (0) | 2024.08.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 재귀함수
- 오블완
- Cleanup
- 챌린지1일차
- props
- 노마드
- React
- 타입스크립트
- CLI
- 프로그래머스
- 티스토리챌린지
- 프로젝트회고록
- 카카오로그인
- 자바스크립트
- splice
- await
- overloading
- useState
- Async
- slice
- create react app
- useEffect
- ReactJS
- 오버로딩
- 리액트
- 리액트네이티브
- nomard
- ts
- NPM
- TypeScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
글 보관함