"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > प्रतिक्रिया: राज्य एक्स व्युत्पन्न राज्य

प्रतिक्रिया: राज्य एक्स व्युत्पन्न राज्य

2024-11-08 को प्रकाशित
ब्राउज़ करें:569

React: State X Derived State

व्युत्पन्न अवस्था क्या है? टेक्स्ट के लिए एक स्थिति और फिर अपरकेस टेक्स्ट के लिए दूसरी स्थिति के बारे में सोचें।

व्युत्पन्न अवस्था

function Foo() {
    const [text, setText] = useState('hello, za warudo!');
    const [uppercaseText, setUppercaseText] = useState(text.toUpperCase());

    useEffect(() => {
        setUppercaseText(text.toUpperCase());
    }, [text])

    ...
}

ऐसा कहें तो यह सोचना पागलपन है कि कोई ऐसा करेगा... सही है? सही?

हां, इस तरह के एक उदाहरण से स्पष्ट हो जाएगा कि यह गलत है।

व्युत्पन्न अवस्था का बुरा

  • अलग से संग्रहीत और वास्तविक स्थिति के साथ समन्वय से बाहर।
  • अनावश्यक री-रेंडर पर ट्रिगर (निर्भर)।

व्युत्पन्न स्थिति को दोबारा कैसे करें?

कहें कि यह एक महंगी गणना है... इसका समाधान यूज़मेमो का उपयोग करना है।

function Foo() {
    const [text, setText] = useState('hello, za warudo!');
    const uppercaseText = useMemo(() => text.toUpperCase(), [text]);
    ...
}

किस प्रकार शीघ्रता से उस स्थिति का पता लगाया जा सकता है जिसे प्राप्त किया जा सकता है?

मैं सोचने का एक अच्छा तरीका लेकर आया हूं जिससे यह आसान हो जाएगा जानना कि क्या एक राज्य को "दूसरा राज्य" होना चाहिए या सिर्फ एक गणना की गई संपत्ति (मामले के आधार पर याद किया जाना चाहिए या नहीं)।

function Foo({
    text = 'hello, za warudo!',
    uppercaseText = text.toUpperCase(),
}) {
    ...
}

// Forget react for a moment...
// Would you ever call a function like this?
const text = 'hello, za warudo!';
Foo({
    text,
    uppercaseText: text.toUpperCase(),
});

यदि आप उन राज्यों को "प्रॉप्स" के रूप में सोचते हैं, तो यह इसे और अधिक स्पष्ट रूप से वही बनाता है जो इसे होना चाहिए।

प्रतिक्रिया को पूरी तरह से भूल जाएं, केवल कार्यों के बारे में सोचें:
क्या आप एक फ़ंक्शन को एक वेरिएबल और फिर एक अन्य वेरिएबल के साथ कॉल करेंगे जिसकी आप गणना कर सकते हैं?

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/noriller/react-state-x-derived-state-2d2a?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3