React Router は、React アプリケーションでルーティングを処理するためのライブラリです。これにより、アプリはページ全体をリロードすることなく、さまざまなコンポーネントやビュー間を移動できるようになり、ユーザー エクスペリエンスがシームレスになります。
まず、react-router-dom:
をインストールします。
npm install react-router-dom
BrowserRouter、Routes、および Route を使用して基本的なルーティングを設定します:
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Home = () =>Home
; const About = () =>About
; const App = () => { return (); }; export default App; } /> } />
より複雑なアプリの場合は、ルートをネストできます。親コンポーネントでネストされたルートを設定する方法は次のとおりです:
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Dashboard = () =>Dashboard Home
; const Profile = () =>Your Profile
; const DashboardLayout = () => { return (); }; const App = () => { return (} /> } /> ); }; export default App; } />
動的ルーティングを使用すると、URL でパラメータを渡すことができます。動的ルートを定義してアクセスする方法は次のとおりです:
import { useParams } from 'react-router-dom'; const User = () => { const { id } = useParams(); returnUser ID: {id}
; }; const App = () => { return (); }; export default App; } />
保護されたルートを実装するには、カスタム PrivateRoute コンポーネントを作成できます:
import { Navigate, Outlet } from 'react-router-dom'; const useAuth = () => { const user = { loggedIn: true }; // Replace with actual auth logic return user && user.loggedIn; }; const PrivateRoute = () => { const isAuth = useAuth(); return isAuth ?: ; }; const App = () => { return ( ); }; export default App; } /> }> } />
フォーム送信後など、プログラムで操作したい場合があります。 React Router v6 で useNavigate フックを使用する:
import { useNavigate } from 'react-router-dom'; const Login = () => { const navigate = useNavigate(); const handleLogin = () => { // Login logic here... navigate('/dashboard'); }; return (); }; export default Login;Login
キャッチオール ルートを作成して 404 (Not Found) エラーを処理します:
const NotFound = () =>404 - Page Not Found
; const App = () => { return (); }; export default App; } /> } /> } />
大規模なアプリケーションの場合、遅延読み込みルートによりパフォーマンスが向上する可能性があります。 React.lazy() と Suspense を使用して遅延読み込みを実装する方法は次のとおりです:
import React, { Suspense, lazy } from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; const Home = lazy(() => import('./Home')); const About = lazy(() => import('./About')); const App = () => { return (); }; export default App; Loading...}> } /> } />
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3