React क्या है?
In this page:
React किस Problem को Solve करता है
document.getElementById और appendChild से हाथ से एक page update करना app बढ़ने के साथ जल्दी messy हो जाता है -- आपको exactly track करना पड़ता है कि कौन से DOM nodes मौजूद हैं और हर एक को manually बदलना पड़ता है।
React आपको यह describe करने देता है कि current data के लिए UI कैसा दिखना चाहिए, और React खुद पता लगाता है कि किन real DOM nodes को update करना है।
उदाहरण: What Problem React Solves
<!DOCTYPE html>
<html>
<head>
<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/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
function Greeting() {
return <h1>Hello, React!</h1>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<Greeting />);
</script>
</body>
</html>
Declarative vs Imperative UI
Imperative code step-by-step DOM instructions देता है (यह element बनाओ, फिर इसे append करो, फिर इसका text set करो)। Declarative React code बस end result को JSX के रूप में describe करता है, और React असली DOM operations पीछे से handle करता है।
उदाहरण: Declarative vs Imperative UI
<!DOCTYPE html>
<html>
<head>
<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/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
function Message() {
// Declarative: just describe the result.
return <p>This paragraph was described, not built step-by-step.</p>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<Message />);
</script>
</body>
</html>
Component-Based Architecture
React apps छोटे, reusable components के एक tree के रूप में बनाए जाते हैं, हर एक UI के एक piece के लिए responsible। एक page एक giant block of markup लिखने के बजाय components को combine करके assemble किया जाता है।
उदाहरण: Component-Based Architecture
<!DOCTYPE html>
<html>
<head>
<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/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
function Header() {
return <h2>My Site</h2>;
}
function Footer() {
return <p>© 2024</p>;
}
function Page() {
return (
<div>
<Header />
<Footer />
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<Page />);
</script>
</body>
</html>
React Code कहां Run होता है
React react-dom package के through browser DOM में render करने के लिए बनाया गया था, जो यह पूरा course उपयोग करता है। वही component concepts (components, props, state) React Native को mobile apps के लिए और Server Components को भी power करते हैं, लेकिन हर case में rendering target अलग है।
उदाहरण: Where React Code Runs
<!DOCTYPE html>
<html>
<head>
<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/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
function Note() {
return <p>Rendered into the browser DOM by react-dom.</p>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<Note />);
</script>
</body>
</html>
- यह सोचना कि React एक पूरी programming language है, UI बनाने के लिए एक JavaScript library नहीं।
- यह उम्मीद करना कि React routing, styling, या backend logic out of the box handle करेगा -- उनके लिए अलग libraries चाहिए।
- React (library) को React Native (mobile apps के लिए एक अलग framework) के साथ confuse करना।
- React UI बनाने के लिए एक JavaScript library है, components से बनी।
- इसे Facebook ने बनाया था और अब इसे Meta और open-source community maintain करती है।
- React सिर्फ view layer पर focus करता है -- routing, state management, और styling अलग choices हैं।
- Components आपको UI को independent, reusable pieces में split करने देते हैं।
React खुद सभी modern evergreen browsers (Chrome, Firefox, Safari, Edge) को support करता है; इस topic पर कोई browser-specific restrictions apply नहीं होती।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: