व्युत्पन्न अवस्था क्या है? टेक्स्ट के लिए एक स्थिति और फिर अपरकेस टेक्स्ट के लिए दूसरी स्थिति के बारे में सोचें।
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(), });
यदि आप उन राज्यों को "प्रॉप्स" के रूप में सोचते हैं, तो यह इसे और अधिक स्पष्ट रूप से वही बनाता है जो इसे होना चाहिए।
प्रतिक्रिया को पूरी तरह से भूल जाएं, केवल कार्यों के बारे में सोचें:
क्या आप एक फ़ंक्शन को एक वेरिएबल और फिर एक अन्य वेरिएबल के साथ कॉल करेंगे जिसकी आप गणना कर सकते हैं?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3