React Router عبارة عن مكتبة للتعامل مع التوجيه في تطبيقات React. فهو يسمح لتطبيقك بالتنقل بين المكونات وطرق العرض المختلفة دون إعادة تحميل الصفحة بالكامل، مما يجعل تجربة المستخدم سلسة.
ابدأ بتثبيت React-router-dom:
npm install react-router-dom
إعداد التوجيه الأساسي باستخدام BrowserRouter، والمسارات، والمسار:
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; } /> }> } />
في بعض الأحيان، قد ترغب في التنقل برمجيًا، مثل بعد إرسال النموذج. استخدم ربط useNavigate في React Router v6:
import { useNavigate } from 'react-router-dom'; const Login = () => { const navigate = useNavigate(); const handleLogin = () => { // Login logic here... navigate('/dashboard'); }; return (); }; export default Login;Login
تعامل مع أخطاء 404 (لم يتم العثور عليها) عن طريق إنشاء مسار شامل:
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