React 라우터를 사용하여 핸들러 구성 요소에 소품 전달
react-router는 한 웹 페이지를 다른 웹 페이지에 연결하는 주요 기능을 수행합니다. 다중 페이지 앱을 빌드할 때 react-router를 적용하여 페이지를 함께 연결합니다.
그러나 React 라우터는 다른 기능을 수행합니다. 또한 한 링크에서 다른 링크로 상태 또는 props{property}
를 전달할 수 있습니다.
이 접근 방식을 사용하면 하나의 링크를 사용하여 다른 링크의 상태를 제어하거나 이전 페이지의 전체 콘텐츠를 렌더링하지 않고 한 페이지의 요소 일부를 다른 페이지와 공유할 수 있습니다.
React Router를 사용하여 소품을 다른 구성 요소로 전달
예를 들어 React Router를 사용하여 페이지 4 구성 요소에서 페이지 5 구성 요소의 URL을 조정하는 소품을 전달하려고 합니다.
새 프로젝트 폴더를 만들고 npm install react-router
를 사용하여 React Router를 설치한 다음 npm install react-router-dom
을 사용하여 라우터 DOM을 설치합니다. 그런 다음 폴더를 만들고 pages
라는 이름을 지정한 다음 Page4.js
및 Page5.js
라는 두 개의 구성 요소를 만듭니다.
그런 다음 App.js
파일을 다음과 같이 코딩하는 것으로 시작합니다.
코드 스니펫 - App.js
:
import React from 'react';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import Page4 from './pages/Page4';
import Page5 from './pages/Page5';
function App(props) {
return (
<BrowserRouter>
<Routes>
<Route exact path="/" element={<Page4/>} />
<Route exact path="/page4" element={<Page4 />} />
<Route path="/page5/:type" element={<Page5/>} />
</Routes>
</BrowserRouter>
);
}
export default App;
여기에서 두 구성 요소를 App.js
에 연결한 다음 Page5
페이지가 :type
속성을 사용하여 모든 유형의 소품을 허용하도록 합니다.
그런 다음 Page4.js
파일에 이 코드를 입력합니다.
코드 스니펫 - Page4.js
:
import React from 'react';
import { Link } from 'react-router-dom';
function Page4(props) {
return (
<div>
<h1>Title of Page 4</h1>
<hr />
<Link to={{
pathname: "/page5/parameter-data",
state: { stateParam: true }
}}>Move to Next Page</Link>
</div>
);
}
export default Page4;
Page4
를 Page5
에 연결하는 동안 URL을 업데이트하는 상태도 추가했습니다. 일반적으로 http://localhost:3000/page5
만 표시되지만 이제 Page4
에서 추가한 대로 http://localhost:3000/page5/parameter-data
가 표시되어야 합니다.
그런 다음 Page5
에서 다음과 같이 Page4
에 다시 연결하는 코드를 만듭니다.
코드 스니펫 - Page5.js
:
import React from 'react';
import { Link, useParams, useLocation } from 'react-router-dom';
function Page5(props) {
const { type } = useParams();
return (
<div>
<h1>Title of Page 5</h1>
<hr />
<Link to={"/page4"}>Move to Prev Page</Link>
</div>
);
}
export default Page5;
또한 Page4
에서 소품을 수신하기 위해 const {type}
을 추가했습니다.
출력:
결론
이 접근 방식은 건초더미 같은 코드 안에서 잃어버리고 싶지 않은 눈에 띄는 기능이나 소품을 추가하려는 경우 효율적일 수 있습니다. 따라서 별도의 구성 요소를 만들고 prop 또는 state를 전달하는 동안 원하는 페이지에 연결할 수 있습니다.
Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.
LinkedIn관련 문장 - React Router
- React JS의 조건부 라우팅
- React Router 4 정규식 경로
- React Router를 사용하여 이전 페이지로 돌아가기
- React 라우터 동적 경로
- React의 HashRouter 구성 요소