JSX का परिचय
function ComponentName() {
return (
<div className="class-name" onClick={handler}>
<child>content</child>
</div>
);
}
JSX कैसा दिखता है
JSX एक syntax extension है जो आपको JavaScript के अंदर directly HTML-like tags लिखने देता है। पीछे से, हर JSX tag एक React.createElement() call तक compile होता है -- JSX बस वह लिखने का एक friendlier तरीका है।
उदाहरण: What JSX Looks Like
<!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 Hello() {
return <p>This is JSX -- it looks like HTML but is JavaScript.</p>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<Hello />);
</script>
</body>
</html>
एक Single Root Element
एक component का JSX exactly एक top-level element return करना चाहिए -- आप दो sibling tags को एक parent में wrap किए बिना side by side return नहीं कर सकते।
उदाहरण: A Single Root Element
<!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 TwoLines() {
return (
<div>
<p>First line</p>
<p>Second line</p>
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<TwoLines />);
</script>
</body>
</html>
JSX Attributes camelCase Use करते हैं
onclick और tabindex जैसे HTML attributes JSX में onClick और tabIndex बन जाते हैं, HTML के lowercase convention के बजाय JavaScript के camelCase convention को follow करते हुए।
उदाहरण: JSX Attributes Use camelCase
<!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 ClickNote() {
return <button onClick={() => alert('Clicked!')}>Click me</button>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<ClickNote />);
</script>
</body>
</html>
- JSX को एक function के बाहर लिखना जो इसे return करता है, यह उम्मीद करते हुए कि यह automatically display होगा।
- यह भूल जाना कि JSX को exactly एक root element चाहिए जो सब कुछ return किया गया wrap करे।
- CSS classes के लिए
classके बजायclassNameउपयोग करना, क्योंकिclassJavaScript में एक reserved word है।
- JSX एक syntax extension है जो आपको JavaScript के अंदर HTML-like markup लिखने देता है।
- यह (Babel के through) regular JavaScript function calls में compile हो जाता है।
- JSX expressions को एक single root element return करना चाहिए।
- JSX
classNameऔरonClickजैसे camelCase attribute names उपयोग करता है।
JSX खुद कभी directly browser में run नहीं होता -- इसे पहले compile किया जाना चाहिए, या तो build time पर (Babel/Webpack/Vite) या quick demos के लिए Babel standalone CDN के through।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: