HTML के साथ React
HTML के साथ React का अर्थ है कि हम HTML की स्थिर संरचना और React की गतिशील शक्ति को मिलाकर आधुनिक वेब अनुप्रयोग बनाते हैं। HTML हमारी वेबसाइट का ढांचा है, जैसे घर की दीवारें और नींव, जबकि React उस घर की सजावट और फर्नीचर है जिसे आप कभी भी बदल सकते हैं। यह संयोजन हमें इंटरएक्टिव, तेज़ और पुन: प्रयोज्य (reusable) UI बनाने की सुविधा देता है।
इस तकनीक का उपयोग विभिन्न प्रकार की परियोजनाओं में होता है:
- Portfolio Website: प्रोजेक्ट्स को फ़िल्टर करने और विज़िटर को डायनामिक रूप से स्वागत करने के लिए।
- Blog: कमेंट सेक्शन को बिना पेज रीलोड किए अपडेट करने के लिए।
- E-Commerce: रियल-टाइम कार्ट और प्रोडक्ट स्टॉक अपडेट के लिए।
- News Site: लाइव अपडेट या ब्रेकिंग न्यूज़ दिखाने के लिए।
- Social Platform: नए पोस्ट तुरंत दिखाने के लिए।
इस संदर्भ में आप सीखेंगे कि JSX के माध्यम से HTML और React को कैसे जोड़ा जाता है, कैसे कंपोनेंट बनाए जाते हैं और उन्हें वास्तविक दुनिया की परियोजनाओं में कैसे लागू किया जाता है। इसे हम एक पुस्तकालय की तरह समझ सकते हैं, जहाँ HTML बुकशेल्फ़ है और React वह स्मार्ट लाइब्रेरियन है जो किताबों को तुरंत व्यवस्थित और अद्यतन कर सकता है।
मूल उदाहरण
html<!DOCTYPE html>
<html lang="hi">
<head>
<meta charset="UTF-8">
<title>HTML के साथ React - मूल उदाहरण</title>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Simple functional component
function Namaste() {
return <h1>नमस्ते, मेरी React साइट पर आपका स्वागत है!</h1>;
}
// Render component in root div
ReactDOM.createRoot(document.getElementById('root')).render(<Namaste />);
</script>
</body>
</html>
ऊपर दिए गए कोड में हमने HTML और React को जोड़ा है। सबसे पहले <div id="root"></div>
हमारा कंटेनर है। यह उस खाली कमरे की तरह है जिसमें हम React के फर्नीचर (Components) रखते हैं।
HTML भाग में तीन <script>
टैग हैं:
- React – यह लाइब्रेरी UI कंपोनेंट बनाने के लिए है।
- ReactDOM – यह HTML DOM में React कंपोनेंट को Render करता है।
- Babel – JSX (जो HTML जैसा दिखता है लेकिन JavaScript है) को ब्राउज़र-फ्रेंडली JS में बदलता है।
function Namaste()
एक Functional Component है, जो JSX रिटर्न करता है। JSX में हम HTML जैसी सिंटैक्स लिखते हैं लेकिन यह JavaScript के अंदर रहता है।
ReactDOM.createRoot(...).render(<Namaste />)
वह स्टेप है जहाँ React आपके HTML के अंदर डायनामिक कंटेंट डालता है। शुरुआती लोग पूछ सकते हैं: “क्यों न<h1>
सीधे HTML में लिखें?” इसका कारण है कि React का लाभ डायनामिक अपडेट है। उदाहरण के लिए, हम यहाँ समय के अनुसार अलग-अलग अभिवादन दिखा सकते हैं। यह तरीका ब्लॉग, ई-कॉमर्स और सोशल प्लेटफॉर्म जैसी साइट्स में अत्यंत उपयोगी है, जहाँ कंटेंट को बिना पेज रीलोड किए बदलना पड़ता है।
व्यावहारिक उदाहरण
html<!DOCTYPE html>
<html lang="hi">
<head>
<meta charset="UTF-8">
<title>HTML के साथ React - व्यावहारिक उदाहरण</title>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Profile card component
function ProfileCard(props) {
return (
<div>
<h2>{props.name}</h2>
<p>{props.bio}</p>
</div>
);
}
function ProfileList() {
return (
<div>
<ProfileCard name="आर्या सिंह" bio="फ्रंटएंड डेवलपर और ब्लॉगर" />
<ProfileCard name="विक्रम गुप्ता" bio="ई-कॉमर्स विशेषज्ञ और React उत्साही" />
<ProfileCard name="सिया वर्मा" bio="न्यूज़ पोर्टल एडिटर" />
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<ProfileList />);
</script>
</body>
</html>
सर्वोत्तम प्रथाएँ (Best Practices)
- Semantic HTML:
<section>
,<article>
,<header>
जैसे टैग का उपयोग करें। - Accessibility:
alt
और ARIA attributes दें ताकि स्क्रीन रीडर सही काम करें। - स्वच्छ संरचना: प्रत्येक कंपोनेंट का एक ही उद्देश्य हो।
-
JSX में
className
का उपयोग करें,class
नहीं।
सामान्य गलतियाँ (Common Mistakes) -
Div-Soup बनाना – बहुत सारे
<div>
बिना अर्थपूर्ण टैग के। - List में Key भूल जाना, जिससे React को अपडेट में दिक्कत होती है।
- गलत Nesting जैसे
<p><div></div></p>
। - एक ही कंपोनेंट में बहुत सारी लॉजिक डालना।
Debugging टिप्स:
- React Developer Tools से कंपोनेंट हायरार्की देखें।
- DOM Inspector से देखें कि JSX क्या बन रहा है।
- स्टेप-बाय-स्टेप अप्रोच अपनाएँ: पहले स्टैटिक HTML, फिर React लॉजिक।
📊 त्वरित संदर्भ
Property/Method | Description | Example |
---|---|---|
className | JSX में CSS क्लास लगाने के लिए | <div className="container"></div> |
key | List में यूनिक पहचान | <li key={id}>{name}</li> |
props | कंपोनेंट को डेटा पास करने के लिए | <ProfileCard name="आर्या" /> |
ReactDOM.createRoot | React के लिए रूट बनाने के लिए | ReactDOM.createRoot(document.getElementById('root')) |
render() | कंपोनेंट को DOM में डालने के लिए | root.render(<App />) |
JSX | HTML जैसी सिंटैक्स इनसाइड JS | const el = <h1>नमस्ते</h1>; |
सारांश और अगले कदम
अब आप जानते हैं कि HTML के साथ React का उपयोग करके इंटरएक्टिव और डायनामिक UI कैसे बनाया जाता है। HTML आपका स्थायी ढांचा है, React उसकी जीवंतता और लचीलापन। JSX आपको इन दोनों दुनियाओं को सहजता से जोड़ने देता है।
ये तकनीकें Portfolio Websites, Blogs, E-Commerce Stores, News Portals और Social Platforms जैसे प्रोजेक्ट्स के लिए आधार हैं।
अगले चरण में आपको State Management, Hooks, और Component Communication सीखनी चाहिए। इसके बाद CSS आपके UI को सुंदर बनाएगा और JavaScript तथा React इसे स्मार्ट बनाएंगे।
व्यावहारिक सलाह: छोटे-छोटे प्रोजेक्ट से शुरुआत करें, जैसे कि डायनामिक टु-डू लिस्ट या प्रोजेक्ट गैलरी, फिर धीरे-धीरे बड़े प्रोजेक्ट पर जाएँ। निरंतर अभ्यास और React Developer Tools का उपयोग आपकी प्रगति को तेज़ करेगा।
🧠 अपने ज्ञान की परीक्षा करें
अपना ज्ञान परखें
व्यावहारिक प्रश्नों के साथ इस विषय की अपनी समझ का परीक्षण करें।
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी