라우터 v5는 설명되지 않습니다.
React-router-dom은 여러 구성 요소로 구성됩니다.
몇 가지 예를 들자면
1. 브라우저 라우터
React Router는 여러 유형의 라우터를 지원합니다.
React Native에도 NativeRouter가 있습니다.
현재 앱이 아닌 브라우저에서 실행되는 웹 개발을 하고 있습니다.
따라서 “브라우저 라우터”로 기억할 수 있습니다.
BrowserRouter는 단순 URL(클린 URL이라고 함)을 사용하여 브라우저의 주소 표시줄에 현재 위치를 저장합니다.
그리고 브라우저의 내장 기록 스택을 사용하여 탐색합니다.
처음으로 프로젝트를 실행할 때 모든 앱이 실행될 이 구성 요소를 포함해야 합니다.
일반적으로 index.js 또는 App.js입니다.
Vite로 프로젝트를 시작했기 때문에 main.jsx에 있습니다.
샘플 코드
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import "./index.css";
import { BrowserRouter } from "react-router-dom";
ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
이러한 방식으로 전체 앱 구성 요소를 래핑하면 기본 라우팅 설정이 완료됩니다.
2. 노선
앱의 아무 곳에서나 렌더링됩니다.
경로 구성 요소 현재 위치에서 아래의 서브루트 세트와 일치합니다.
하위 경로는
주의하십시오.)
위치가 변경될 때마다 모든 하위 경로를 반복하여 가장 일치하는 하위 경로를 찾아 조정하고 적절한 UI를 그립니다.
그 의미는,
요약하자면,
경로(s 포함)에는 이동할 경로가 포함되어야 합니다.
경로에는 홈페이지 내에서 이동하려는 주소를 씁니다.
세 번째 경로(경로 내의 자식)
경로에 들어가는 매개변수에 대해 기억해야 할 것은 경로와 요소입니다.
Path에는 가고자 하는 주소를 입력하고, Element에는 그릴 UI가 포함된 컴포넌트의 이름을 적습니다.
샘플 코드
import { Route, Routes } from "react-router-dom";
import "./App.css";
import BookList from "./pages/BookList";
import Home from "./pages/Home";
function App() {
return (
<Routes>
<Route path="/" element={<Home />} />
<Route path="/books" element={<BookList />} />
</Routes>
);
}
export default App;
그것이 적다면
홈 구성 요소는 localhost:000에 나타납니다.
BookList 구성 요소는 localhost:000/books에 표시됩니다.
주소를 개별적으로 입력하기 어려우므로 해당 컴포넌트로 이동하는 링크 연결을 생성합니다.
일반적으로 다른 주소에 연결할 때 href 속성을 사용합니다.
-태그,
React Router는 대신 to 속성을 사용합니다.
-태그.
이렇게 하면 React에서 필요한 부분만 변경할 수 있습니다.
샘플 코드
import { Link, Route, Routes } from "react-router-dom";
import "./App.css";
import BookList from "./pages/BookList";
import Home from "./pages/Home";
function App() {
return (
<>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/books">Books</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/books" element={<BookList />} />
</Routes>
</>
);
}
export default App;
현재 화면
내 홈 구성 요소 코드에 Welcome Home이 표시되어 있기 때문입니다.
Home.jsx 코드
import React from "react";
const Home = () => {
return (
<div>
<h1>Welcome Home</h1>
</div>
);
};
export default Home;
이상한 점은 위의 링크를 클릭하여 다른 컴포넌트로 전환하면,
이는 전체 화면이 업데이트되지 않음을 의미합니다.
React Router는 필요한 경로 내에서 전체 페이지를 새로 고치지 않습니다.
신속하게 교체해야 하는 부품만 교체하십시오.
이 부분이 매우 중요합니다.
다음 기사에서는 HashRouter와 HistoryRouter를 살펴보겠습니다.