Kodokon kodokon.com

useState के साथ लोकल स्टेट

useState के साथ अपने कॉम्पोनेंट को मेमोरी दें ताकि आप ऐसी वैल्यू प्रदर्शित कर सकें जो यूज़र के इंटरैक्ट करते ही बदलती हैं।

8 मिनट · 3 प्रश्न

इस पाठ को Kodokon में खोलें

एक लाइक काउंटर, किसी सर्च फ़ील्ड में टाइप किया गया टेक्स्ट, एक मेन्यू जो खुलता और बंद होता है: ये सभी वैल्यू ऐप के उपयोग के दौरान बदलती हैं। एक साधारण वेरिएबल पर्याप्त नहीं है, क्योंकि जब यह बदलता है तो React स्क्रीन को रिफ़्रेश नहीं करता। आपको वह चाहिए जिसे स्टेट कहा जाता है: मेमोरी जो कॉम्पोनेंट की अपनी होती है। आप इसे useState से बनाते हैं, एक hook, यानी React द्वारा प्रदान किया गया एक विशेष फ़ंक्शन जिसका नाम use से शुरू होता है।

JSX
import { useState } from "react";

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      Count: {count}
    </button>
  );
}
एक काउंटर जो हर क्लिक के साथ बढ़ता है

आइए मुख्य लाइन का विश्लेषण करें: const [count, setCount] = useState(0);useState(0) प्रारंभिक वैल्यू 0 के साथ एक स्टेट बनाता है और दो एलिमेंट का एक ऐरे लौटाता है, जिसे आप डीस्ट्रक्चरिंग के माध्यम से पकड़ते हैं: count वर्तमान वैल्यू है, और setCount अपडेट फ़ंक्शन है, उस वैल्यू को बदलने का एकमात्र अनुमत तरीका। यहाँ, onClick हर क्लिक पर setCount(count + 1) को ट्रिगर करता है (हम अगले पाठ में इवेंट को विस्तार से कवर करेंगे)।

JSX
import { useState } from "react";

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

  return (
    <div>
      <input
        value={name}
        onChange={(e) => setName(e.target.value)}
      />
      <p>Hello, {name}!</p>
    </div>
  );
}
स्टेट फ़ील्ड में टाइप किए गए टेक्स्ट को याद रखता है

जब आप setName को कॉल करते हैं, तो React दो काम करता है: यह नई वैल्यू को संग्रहित करता है, फिर यह आउटपुट को फिर से गणना करने के लिए आपके कॉम्पोनेंट फ़ंक्शन को फिर से चलाता है। इसे re-render कहा जाता है। यही कारण है कि Hello, {name}! पैराग्राफ हर टाइप किए गए अक्षर के साथ अपने आप अपडेट होता है: आप परिणाम का वर्णन करते हैं, React बाकी संभालता है।

ज्ञान जांच

सुनिश्चित करें कि आपको इस पाठ के मुख्य बिंदु याद हैं।

  1. useState(0) कॉल क्या लौटाता है?
    • केवल स्टेट की वर्तमान वैल्यू
    • वर्तमान वैल्यू और उसके अपडेट फ़ंक्शन के साथ एक ऐरे
    • एक ऑब्जेक्ट जिसमें कॉम्पोनेंट की सारी स्टेट होती है
  2. काउंटर बढ़ाने का सही तरीका कौन-सा है?
    • count = count + 1
    • useState(count + 1)
    • setCount(count + 1)
  3. जब आप किसी स्टेट के अपडेट फ़ंक्शन को कॉल करते हैं तो क्या होता है?
    • React डिस्प्ले रिफ़्रेश करने के लिए कॉम्पोनेंट को फिर से चलाता है
    • पूरा पेज ब्राउज़र में फिर से लोड हो जाता है
    • कुछ नहीं, आपको पेज को मैन्युअल रूप से भी रिफ़्रेश करना पड़ता है