
- بواسطة x32x01 ||
إزاي تستخدم React Router وتتصفح صفحات موقعك بسهولة
لما تيجي تبني تطبيق React شغال على صفحة واحدة (SPA)، أكيد هيسألك نفسك: "إزاي أقدر أتنقل بين الصفحات من غير ما أعمل Refresh للصفحة كلها؟" 
هنا بييجي دور React Router، المكتبة اللي بتخلي التنقل بين صفحات تطبيقك سهل وسلس. الموضوع مش معقد زي ما بعض الناس فاكرة، بس محتاج تفهم الأساسيات خطوة خطوة.
1. تجهيز الـ Router في المشروع
أول حاجة، نصب المكتبة المطلوبة: Code:
npm install react-router-dom
بعدها، في
index.js
، حط BrowserRouter حوالين التطبيق بتاعك، زي ما يكون مدير المرور اللي بينظم التنقلات: JavaScript:
import { BrowserRouter } from 'react-router-dom';
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
ReactDOM.createRoot(document.getElementById('root')).render( <BrowserRouter> <App /> </BrowserRouter>
);

2. إضافة الصفحات Routes و Route
في App.js
، استخدم Routes و Route لتحديد كل صفحة في المشروع: JavaScript:
import { Routes, Route } from 'react-router-dom';
import Home from './components/Home';
import About from './components/About';
function App() {
return ( <Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} /> </Routes>
);
}
export default App;
3. روابط التنقل Link
علشان المستخدم يتنقل بين الصفحات من غير Refresh، استخدم Link بدل <a>
العادية: JavaScript:
import { Link } from 'react-router-dom';
function Navbar() {
return ( <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav>
);
}

4. Nested Routes: صفحات متفرعة للمشاريع الكبيرة
لو مشروعك كبير وعندك صفحات متفرعة، هنا ييجي دور Nested Routes. مثال: صفحة لكل المستخدمين، وفي نفس الوقت صفحة لكل مستخدم عند الضغط عليه: JavaScript:
<Route path="/users" element={<Users />}>
<Route path=":id" element={<UserProfile />} /> </Route>
5. إمكانيات متقدمة في React Router
React Router مش بس للتنقل البسيط، ده كمان بيدعم:- Redirects لإعادة توجيه الصفحات
- Protected Routes لحماية الصفحات اللي محتاجة تسجيل دخول
- إدارة الـ URL Parameters بسهولة
- Integration مع Hooks زي useNavigate و useParams
JavaScript:
import { useParams } from 'react-router-dom';
function UserProfile() {
const { id } = useParams();
return <div>صفحة المستخدم رقم {id}</div>;
}

ودي بس البداية

لو عندك أي سؤال أو استفسار، اكتب في الكومنتات

التعديل الأخير: