प्रतिक्रिया ट्यूटोरियल

रिएक्ट होम प्रतिक्रिया परिचय प्रतिक्रिया आरंभ करें प्रतिक्रिया ES6 रिएक्ट रेंडर एचटीएमएल प्रतिक्रिया JSX प्रतिक्रिया घटक प्रतिक्रिया वर्ग प्रतिक्रिया सहारा प्रतिक्रिया घटनाक्रम प्रतिक्रिया सशर्त प्रतिक्रिया सूचियाँ प्रतिक्रिया प्रपत्र प्रतिक्रिया राउटर प्रतिक्रिया ज्ञापन प्रतिक्रिया सीएसएस स्टाइलिंग प्रतिक्रिया सास स्टाइलिंग

प्रतिक्रिया हुक

एक हुक क्या है? राज्य का उपयोग करें उपयोग प्रभाव उपयोग प्रसंग उपयोग रेफरी रेड्यूसर का उपयोग करें कॉलबैक का उपयोग करें मेमो का उपयोग करें कस्टम हुक

प्रतिक्रिया अभ्यास

प्रतिक्रिया प्रश्नोत्तरी प्रतिक्रिया अभ्यास प्रतिक्रिया प्रमाण पत्र

प्रतिक्रिया प्रपत्र


HTML की तरह ही, रिएक्ट फॉर्म का उपयोग करता है ताकि उपयोगकर्ता वेब पेज के साथ इंटरैक्ट कर सकें।


प्रतिक्रिया में प्रपत्र जोड़ना

आप किसी अन्य तत्व की तरह प्रतिक्रिया के साथ एक फॉर्म जोड़ते हैं:

उदाहरण:

एक ऐसा फॉर्म जोड़ें जो उपयोगकर्ताओं को अपना नाम दर्ज करने की अनुमति देता है:

function MyForm() {
  return (
    <form>
      <label>Enter your name:
        <input type="text" />
      </label>
    </form>
  )
}
ReactDOM.render(<MyForm />, document.getElementById('root'));

यह सामान्य रूप से काम करेगा, फॉर्म जमा हो जाएगा और पेज रीफ्रेश हो जाएगा।

लेकिन आम तौर पर यह वह नहीं है जो हम रिएक्ट में होना चाहते हैं।

हम इस डिफ़ॉल्ट व्यवहार को रोकना चाहते हैं और रिएक्ट को फॉर्म को नियंत्रित करने देना चाहते हैं।


हैंडलिंग फॉर्म

हैंडलिंग फॉर्म इस बारे में है कि जब आप डेटा बदलते हैं या सबमिट किए जाते हैं तो आप डेटा को कैसे संभालते हैं।

HTML में, प्रपत्र डेटा को आमतौर पर DOM द्वारा नियंत्रित किया जाता है।

रिएक्ट में, फॉर्म डेटा को आमतौर पर घटकों द्वारा नियंत्रित किया जाता है।

जब डेटा को घटकों द्वारा नियंत्रित किया जाता है, तो सभी डेटा को घटक स्थिति में संग्रहीत किया जाता है।

onChangeआप विशेषता में ईवेंट हैंडलर जोड़कर परिवर्तनों को नियंत्रित कर सकते हैं ।

हम useStateप्रत्येक इनपुट मूल्य का ट्रैक रखने के लिए हुक का उपयोग कर सकते हैं और पूरे एप्लिकेशन के लिए "सत्य का एकल स्रोत" प्रदान कर सकते हैं।

उदाहरण:

onChangeइनपुट को प्रबंधित करने के लिए हुक का उपयोग करें :

import { useState } from "react";
import ReactDOM from 'react-dom';

function MyForm() {
  const [name, setName] = useState("");

  return (
    <form>
      <label>Enter your name:
        <input
          type="text" 
          value={name}
          onChange={(e) => setName(e.target.value)}
        />
      </label>
    </form>
  )
}

ReactDOM.render(<MyForm />, document.getElementById('root'));


w3schools CERTIFIED . 2022

प्रमाणन हासिल करें!

रिएक्ट मॉड्यूल को पूरा करें, अभ्यास करें, परीक्षा दें और w3schools प्रमाणित बनें !!

$95 नामांकन

फॉर्म जमा करना

onSubmitआप इसके लिए विशेषता में ईवेंट हैंडलर जोड़कर सबमिट कार्रवाई को नियंत्रित कर सकते हैं <form>:

उदाहरण:

विशेषता में सबमिट बटन और ईवेंट हैंडलर जोड़ें onSubmit:

import { useState } from "react";
import ReactDOM from 'react-dom';

function MyForm() {
  const [name, setName] = useState("");

  const handleSubmit = (event) => {
    event.preventDefault();
    alert(`The name you entered was: ${name}`)
  }

  return (
    <form onSubmit={handleSubmit}>
      <label>Enter your name:
        <input 
          type="text" 
          value={name}
          onChange={(e) => setName(e.target.value)}
        />
      </label>
      <input type="submit" />
    </form>
  )
}

ReactDOM.render(<MyForm />, document.getElementById('root'));


एकाधिक इनपुट फ़ील्ड

nameआप प्रत्येक तत्व में एक विशेषता जोड़कर एक से अधिक इनपुट फ़ील्ड के मानों को नियंत्रित कर सकते हैं ।

हम अपने राज्य को एक खाली वस्तु के साथ आरंभ करेंगे।

ईवेंट हैंडलर में फ़ील्ड तक पहुँचने के लिए event.target.nameऔर event.target.valueसिंटैक्स का उपयोग करें।

स्थिति को अपडेट करने के लिए, प्रॉपर्टी के नाम के आस-पास वर्गाकार ब्रैकेट [ब्रैकेट नोटेशन] का इस्तेमाल करें.

उदाहरण:

दो इनपुट फ़ील्ड के साथ एक फॉर्म लिखें:

import { useState } from "react";
import ReactDOM from "react-dom";

function MyForm() {
  const [inputs, setInputs] = useState({});

  const handleChange = (event) => {
    const name = event.target.name;
    const value = event.target.value;
    setInputs(values => ({...values, [name]: value}))
  }

  const handleSubmit = (event) => {
    event.preventDefault();
    alert(inputs);
  }

  return (
    <form onSubmit={handleSubmit}>
      <label>Enter your name:
      <input 
        type="text" 
        name="username" 
        value={inputs.username || ""} 
        onChange={handleChange}
      />
      </label>
      <label>Enter your age:
        <input 
          type="number" 
          name="age" 
          value={inputs.age || ""} 
          onChange={handleChange}
        />
        </label>
        <input type="submit" />
    </form>
  )
}

ReactDOM.render(<MyForm />, document.getElementById('root'));

नोट: हम दोनों इनपुट फ़ील्ड के लिए एक ही ईवेंट हैंडलर फ़ंक्शन का उपयोग करते हैं, हम प्रत्येक के लिए एक ईवेंट हैंडलर लिख सकते हैं, लेकिन यह हमें बहुत क्लीनर कोड देता है और रिएक्ट में पसंदीदा तरीका है।


पाठ क्षेत्र

रिएक्ट में टेक्स्टरेरा तत्व सामान्य HTML से थोड़ा अलग है।

<textarea> HTML में टेक्स्ट क्षेत्र का मान प्रारंभ टैग और अंत टैग के बीच का टेक्स्ट था </textarea>

<textarea>
  Content of the textarea.
</textarea>

प्रतिक्रिया में एक textarea का मान एक value विशेषता में रखा जाता है। हम useStatetextarea के मान को प्रबंधित करने के लिए Hook का उपयोग करेंगे:

उदाहरण:

कुछ सामग्री के साथ एक साधारण पाठ क्षेत्र:

import { useState } from "react";
import ReactDOM from "react-dom";

function MyForm() {
  const [textarea, setTextarea] = useState(
    "The content of a textarea goes in the value attribute"
  );

  const handleChange = (event) => {
    setTextarea(event.target.value)
  }

  return (
    <form>
      <textarea value={textarea} onChange={handleChange} />
    </form>
  )
}

ReactDOM.render(<MyForm />, document.getElementById('root'));


चुनते हैं

रिएक्ट में ड्रॉप डाउन लिस्ट या सेलेक्ट बॉक्स भी HTML से थोड़ा अलग होता है।

HTML में, ड्रॉप डाउन सूची में चयनित मान को selectedविशेषता के साथ परिभाषित किया गया था:

एचटीएमएल:

<select>
  <option value="Ford">Ford</option>
  <option value="Volvo" selected>Volvo</option>
  <option value="Fiat">Fiat</option>
</select>

रिएक्ट में, चयनित मान को टैग value पर एक विशेषता के साथ परिभाषित किया गया है:select

उदाहरण:

एक साधारण चयन बॉक्स, जहां चयनित मान "वोल्वो" को कंस्ट्रक्टर में इनिशियलाइज़ किया जाता है:

function MyForm() {
  const [myCar, setMyCar] = useState("Volvo");

  const handleChange = (event) => {
    setMyCar(event.target.value)
  }

  return (
    <form>
      <select value={myCar} onChange={handleChange}>
        <option value="Ford">Ford</option>
        <option value="Volvo">Volvo</option>
        <option value="Fiat">Fiat</option>
      </select>
    </form>
  )
}


और में इन थोड़े से बदलाव करके <textarea>, <select>रिएक्ट सभी इनपुट तत्वों को एक ही तरह से संभालने में सक्षम है।