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

`यूजकॉलबैक` बनाम `यूजमेमो` हुक

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

`useCallback` vs `useMemo` Hooks

प्रतिक्रिया प्रदर्शन को बढ़ावा देना: यूज़कॉलबैक बनाम यूज़मेमो हुक

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

यूज़कॉलबैक का उपयोग कब करें

यूज़कॉलबैक हुक कॉलबैक फ़ंक्शन का एक मेमोइज्ड संस्करण लौटाता है, जिसका अर्थ है कि यह केवल तभी फ़ंक्शन को फिर से बनाता है जब इसकी कोई निर्भरता बदलती है। यह विशेष रूप से तब उपयोगी होता है जब चाइल्ड घटकों को प्रॉप्स के रूप में पास किया जाता है ताकि उन्हें अनावश्यक रूप से पुन: प्रस्तुत करने से रोका जा सके।

वास्तविक समय का उदाहरण: अनावश्यक पुन: प्रस्तुतीकरण को रोकना

मान लीजिए कि आपके पास एक मूल घटक है जो एक फ़ंक्शन को चाइल्ड घटक में भेजता है। यूज़कॉलबैक के बिना, हर बार पैरेंट कंपोनेंट रेंडर होने पर चाइल्ड कंपोनेंट फिर से रेंडर होगा, भले ही फ़ंक्शन लॉजिक नहीं बदला हो।

import React, { useState, useCallback } from 'react';
import ChildComponent from './ChildComponent';

const ParentComponent = () => {
  const [count, setCount] = useState(0);

  // Using useCallback to memoize the function
  const handleIncrement = useCallback(() => {
    setCount(count   1);
  }, [count]);

  return (
    

Count: {count}

); }; export default ParentComponent;

उपरोक्त उदाहरण में, हैंडलइंक्रीमेंट को यूज़कॉलबैक के साथ याद किया गया है। चाइल्डकंपोनेंट केवल तभी पुन: प्रस्तुत होगा जब गिनती बदल जाएगी, अनावश्यक पुन: प्रस्तुतीकरण को रोका जा सकेगा और प्रदर्शन में सुधार होगा।

यूज़मेमो का उपयोग कब करें

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

वास्तविक समय का उदाहरण: महँगी संगणनाओं का अनुकूलन

मान लें कि आपके पास एक घटक है जो एक बड़ी सूची को फ़िल्टर करने जैसा कम्प्यूटेशनल रूप से महंगा ऑपरेशन करता है।

import React, { useState, useMemo } from 'react';

const ExpensiveComponent = ({ items }) => {
  const [filter, setFilter] = useState('');

  // Using useMemo to optimize expensive filtering
  const filteredItems = useMemo(() => {
    console.log('Filtering items...');
    return items.filter(item => item.includes(filter));
  }, [items, filter]);

  return (
    
setFilter(e.target.value)} placeholder="Filter items" />
    {filteredItems.map((item, index) => (
  • {item}
  • ))}
); }; export default ExpensiveComponent;

इस उदाहरण में, आइटम सरणी को फ़िल्टर करने के परिणाम को कैश करने के लिए यूज़मेमो का उपयोग किया जाता है। इस तरह, महंगे फ़िल्टरिंग ऑपरेशन की पुनर्गणना केवल तभी की जाती है जब आइटम या फ़िल्टर बदलता है, अनावश्यक गणनाओं से बचा जाता है।

यूज़कॉलबैक और यूज़मेमो का उपयोग करने के लिए दिशानिर्देश

  • अनावश्यक पुन: प्रस्तुतीकरण से बचने के लिए चाइल्ड घटकों को फ़ंक्शन पास करते समय यूज़कॉलबैक का उपयोग करें।
  • महंगी गणनाओं के लिए यूज़मेमो का उपयोग करें जिन्हें प्रत्येक रेंडर पर पुनर्गणना करने की आवश्यकता नहीं है।
  • इन्हें अत्यधिक उपयोग करने से बचें। मेमोइज़ेशन जटिलता जोड़ता है और कभी-कभी कोड को पढ़ना कठिन बना सकता है। उनका उपयोग केवल तभी करें जब आप किसी प्रदर्शन संबंधी समस्या की पहचान करें।
  • निर्भरता सरणी याद रखें। निर्भरता को हमेशा सटीक रूप से निर्दिष्ट करें; अन्यथा, आपको बग या अप्रत्याशित व्यवहार का सामना करना पड़ सकता है।

निष्कर्ष

रिएक्ट का यूज़कॉलबैक और यूज़मेमो हुक अनावश्यक री-रेंडर और महंगी गणनाओं से बचकर घटक प्रदर्शन को अनुकूलित करने के लिए शक्तिशाली उपकरण हैं। इन हुकों को सावधानीपूर्वक लगाकर, आप यह सुनिश्चित कर सकते हैं कि आपका रिएक्ट एप्लिकेशन कुशलतापूर्वक चले।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/sivamani18/usecallback-vs-usememo-hooks-4gj8?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3