← Back to React Course | Chapter 8: Routing | Lesson 1 of 10

React Router Setup करना

React Router आपके app के लिए एक GPS जैसा है — यह decide करता है कि currently typed address (URL) के आधार पर कौन सा screen दिखाना है।
Syntax
markup
import { BrowserRouter, Routes, Route } from "react-router-dom";

<BrowserRouter>
  <Routes>
    <Route path="/path" element={<PageComponent />} />
  </Routes>
</BrowserRouter>

Client-Side Routing की ज़रूरत क्यों है

एक single-page React app के पास सिर्फ एक असली HTML page होता है, लेकिन users अब भी expect करते हैं कि अलग URLs अलग content दिखाएं (जैसे /about vs /contact) एक पूरे page reload के बिना।

React Router URL changes सुनता है और swap कर देता है कि कौन सा component render हो, navigation को instant रखते हुए।

Note: Client-side routing का मतलब है browser के back/forward buttons अब भी काम करते हैं, क्योंकि React Router History API उपयोग करके URL update करता है।
Warning: एक router setup किए बिना, URL manually बदलना कुछ नहीं करता — आपके app को पता नहीं है अलग paths के लिए क्या render करना है।

उदाहरण: Why Client-Side Routing Is Needed

markup
// Run in your local React project (npm install required)
import { BrowserRouter, Routes, Route } from 'react-router-dom';

function Home() { return <p>Home Page</p>; }
function About() { return <p>About Page</p>; }

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

⚠️ This example uses an npm package with no CDN build available here — run this in your local React project.

Install करना और अपना App Wrap करना

react-router-dom install करने के बाद, पहला setup step आपके top-level App component (या render call खुद) को एक single <BrowserRouter> में wrap करना है। जिसे भी routing चाहिए — Routes, Link, useNavigate — सिर्फ इस wrapper के अंदर काम करता है।

Note: BrowserRouter आमतौर पर आपकी entry file (main.jsx/index.js) में जाता है, <App /> को exactly एक बार wrap करते हुए।
Warning: अपने component tree के सिर्फ एक हिस्से को BrowserRouter में wrap करने का मतलब है इसके बाहर वाले components कोई router features उपयोग नहीं कर सकते।

उदाहरण: Installing and Wrapping Your App

markup
// Run in your local React project (npm install required)
import { BrowserRouter } from 'react-router-dom';
import ReactDOM from 'react-dom/client';
import App from './App';

ReactDOM.createRoot(document.getElementById('root')).render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
);

⚠️ This example uses an npm package with no CDN build available here — run this in your local React project.

उदाहरण: Installing react-router-dom

bash
$ npm install react-router-dom
added 3 packages in 2s

⚠️ Run this in your own terminal or Node.js environment.

react-router-dom vs. react-router

React Router कई packages के रूप में publish होता है: react-router के पास core routing logic है, जबकि react-router-dom इसके ऊपर web-specific pieces (BrowserRouter, Link) जोड़ता है।

किसी भी browser-based web app के लिए, आपको हमेशा react-router-dom चाहिए, bare core package नहीं।

Note: अगर आप कभी एक React Native app बनाएं, तो आप इसके बजाय react-router-native उपयोग करेंगे — same core, अलग platform bindings।
Warning: गलती से plain react-router install करने का मतलब है BrowserRouter और Link available नहीं होंगे, confusing import errors cause करते हुए।

उदाहरण: Installing the Right Package

bash
# Correct -- for any browser-based web app
npm install react-router-dom

# Wrong -- missing BrowserRouter, Link, and other DOM bindings
npm install react-router

⚠️ Run this in your own terminal or Node.js environment.

Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. App को <BrowserRouter> में wrap करना भूल जाना, इसलिए routing components के पास router context तक कोई access नहीं है।
  2. <Link> के बजाय regular <a> tags उपयोग करना, जो client-side navigation के बजाय एक पूरा page reload cause करता है।
  3. एक web project के लिए react-router-dom के बजाय react-router install करना — वे अलग packages हैं।
चैप्टर सारांश
  • React Router React web apps में client-side routing के लिए standard npm library है।
  • BrowserRouter को routing enable करने के लिए आपके app को root के पास एक बार wrap करना चाहिए।
  • Routes और Route components declare करते हैं कि किस URL path के लिए कौन सा component render हो।
  • यह एक अलग npm package (react-router-dom) है जिसका इस preview में कोई CDN UMD build wired नहीं है।
ब्राउज़र सपोर्ट

npm install react-router-dom चाहिए — इस sandbox में CDN से available नहीं; v6+ React 16.8+ के साथ काम करता है।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.