← Back to React Course | Chapter 3: Components & Props | Lesson 1 of 11

Function Components का परिचय

एक function component बस एक simple JavaScript recipe है जो ingredients (props) लेता है और return करता है कि screen पर क्या दिखना चाहिए।
Syntax
markup
function ComponentName(props) {
  return <element>{props.propName}</element>;
}

<ComponentName propName="value" />

एक Basic Function Component लिखना

एक function component बस एक JavaScript function है जिसका नाम एक capital letter से शुरू होता है और जो JSX return करता है। React इस function को तब call करता है जब भी उसे जानना हो कि क्या display करना है। यह React में सबसे simple possible building block है।

Note: अपने पहले components को छोटा और एक ही piece of UI पर focused रखें, जैसे एक single message या button।
Warning: एक lowercase letter से शुरू होने वाला component name एक plain HTML tag माना जाएगा, आपका component नहीं।

उदाहरण: Writing a Basic Function Component

markup
<!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 Welcome() {
      return <h1>Welcome to React!</h1>;
    }
    ReactDOM.createRoot(document.getElementById('root')).render(<Welcome />);
  </script>
</body>
</html>

एक Function से JSX Return करना

एक function component से return किया गया JSX यह describe करता है कि page पर क्या दिखना चाहिए, लेकिन यह असली HTML नहीं है -- यह behind the scenes function calls में convert हो जाता है।

Multi-line JSX को return के ठीक बाद parentheses में wrap करना चाहिए ताकि JavaScript एक invisible semicolon insert न करे।

Note: Multi-line JSX को return के ठीक बाद parentheses में wrap करें ताकि accidental blank returns से बचा जा सके।
Warning: return को अपनी ही line पर रखना और JSX को next line पर unwrapped शुरू करना JavaScript को undefined return करने का कारण बनता है।

उदाहरण: Returning JSX from a Function

markup
<!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 Profile() {
      return (
        <div>
          <h2>Jane Doe</h2>
          <p>Frontend Developer</p>
        </div>
      );
    }
    ReactDOM.createRoot(document.getElementById('root')).render(<Profile />);
  </script>
</body>
</html>

एक Component को Element जैसे Call करना

एक बार defined हो जाने पर, एक function component JSX में exactly built-in HTML tag की तरह use होता है, लेकिन एक capital letter और angle brackets के साथ: <Welcome />।

React यह देखता है और आपके function को call करता है यह पता लगाने के लिए कि वहां क्या render करना है, फिर वही हर दूसरे component के लिए करता है जो उसे मिलता है।

Note: आप एक ही component को एक page पर कई बार use कर सकते हैं सिर्फ इसका tag एक से ज़्यादा बार लिखकर।
Warning: Function को सीधे Welcome() जैसे call करना <Welcome /> के बजाय React के rendering process को skip कर देता है और bugs का कारण बन सकता है।

उदाहरण: Calling a Component Like an Element

markup
<!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 <p>Hello there!</p>;
    }
    function App() {
      return (
        <div>
          <Greeting />
          <Greeting />
        </div>
      );
    }
    ReactDOM.createRoot(document.getElementById('root')).render(<App />);
  </script>
</body>
</html>
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. Component के नाम को capitalize करना भूल जाना, जिससे React इसे एक component के बजाय HTML tag मानता है।
  2. Function से JSX return करना भूल जाना, जिससे कुछ भी render नहीं होता।
  3. Multi-line JSX के return और opening parenthesis के बीच एक semicolon या अन्य code जोड़ना, जो automatic semicolon insertion को तोड़ता है।
चैप्टर सारांश
  • एक function component एक plain JavaScript function है जो JSX return करता है।
  • यह React components लिखने का standard, modern तरीका है।
  • Function components एक single props argument accept कर सकते हैं।
  • वे ज़्यादातर use cases के लिए class components से simpler और ज़्यादा concise हैं।
ब्राउज़र सपोर्ट

Hooks के साथ Function components को React 16.8+ चाहिए; Hooks के बिना वे किसी भी React version में काम करते हैं।

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.