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

एकाधिक राज्यों के साथ प्रतिक्रिया में अनावश्यक पुन: प्रस्तुतीकरण से बचना

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

Evitando Re-renderizações Desnecessárias em React com Múltiplos Estados

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

समस्या: बहुत अधिक स्थितियाँ === बहुत अधिक पुन: प्रस्तुतीकरण

आइए कल्पना करें कि हमारे पास एक घटक है जो उपयोगकर्ता के डेटा का प्रबंधन करता है। हम इन राज्यों को स्वतंत्र रूप से इस तरह घोषित कर सकते हैं:

const UserComponent = () => {
  const [name, setName] = useState('');
  const [age, setAge] = useState(0);
  const [address, setAddress] = useState('');
  const [email, setEmail] = useState('');
  const [phone, setPhone] = useState('');
  const [occupation, setOccupation] = useState('');

  // Funções de atualização dos estados
  const updateName = (newName) => setName(newName);
  const updateAge = (newAge) => setAge(newAge);
  // e assim por diante...

  return (
    ...
  );
};

यहां हमारे पास 6 स्वतंत्र राज्य हैं, हर बार इनमें से एक राज्य को अद्यतन किया जाता है, संपूर्ण घटक को फिर से प्रस्तुत किया जाता है, अब कल्पना करें कि हमें 6 राज्यों को अद्यतन करने की आवश्यकता है... हां, हम प्रस्तुत करते हैं यह घटक 6 बार।

समाधान: उपयोगकर्ता जानकारी के संबंध में केवल 1 राज्य बनाएं

इस समस्या को कम करने का एक तरीका सभी राज्यों को एक ही वस्तु में समेकित करना है। अलग-अलग राज्य रखने के बजाय, हम सभी उपयोगकर्ता जानकारी को एक राज्य में रख सकते हैं, यह इस तरह दिखेगा:

const UserComponent = () => {
  const [user, setUser] = useState({
    name: '',
    age: 0,
    address: '',
    email: '',
    phone: '',
    occupation: ''
  });

  // Função para atualizar o estado do usuário
  const updateUser = (newData) => {
    setUser((prevState) => ({
      ...prevUser,
      ...newData,
    }));
  };

  return (
    ...
  );
};

अब, प्रत्येक राज्य के लिए एक फ़ंक्शन होने के बजाय, हमारे पास अपडेटयूज़र फ़ंक्शन है, जो केवल वांछित परिवर्तन प्राप्त करता है और स्प्रेड ऑपरेटर (...) का उपयोग करके उन्हें पिछले राज्य के साथ जोड़ता है। यह आपको राज्य के केवल एक हिस्से को अपडेट करने की अनुमति देता है, जबकि बाकी अपरिवर्तित रहता है।

यदि आप ऑब्जेक्ट के बारे में केवल 1 जानकारी बदलना चाहते हैं, तो यह करें:

setUser((prevState) => ({...prevState, age: 25}))

अंतर

जब हम अलग-अलग राज्यों का उपयोग करते हैं, तो प्रत्येक व्यक्तिगत राज्य परिवर्तन घटक के पुन: प्रस्तुतीकरण का कारण बनता है। जब हम सभी स्थितियों को एक ही ऑब्जेक्ट में समेकित करते हैं, तब भी हमारे पास एक ही री-रेंडर होता है, लेकिन यह केवल एक बार होता है, भले ही ऑब्जेक्ट के कई हिस्से बदल जाएं।

लाभ

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

ओर वो! मुझे आशा है कि मैंने मदद की!!!
हालाँकि मैं अभी भी विकास कर रहा हूँ, लेकिन यहाँ मेरा पोर्टफोलियो है: https://lucaslima.vercel.app (मुझे आशा है कि जब आप इसे एक्सेस करेंगे, तो यह तैयार होगा हाहाहा)

सफलता! ?

विज्ञप्ति वक्तव्य इस लेख को इस पर पुनर्मुद्रित किया गया है: https://dev.to/lucaslimasz/evitando-re- रेंडिज़ैसोसेस-डीसेनेसारियस-ईएम-रिएक्ट-कॉम-मैल्टिप्लोस-एस्टैडोस-ना?
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3