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

रिएक्ट री-रेंडरिंग: इष्टतम प्रदर्शन के लिए सर्वोत्तम अभ्यास

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

React Re-Rendering: Best Practices for Optimal Performance

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

1. कार्यात्मक घटकों के लिए React.memo() का उपयोग करें

React.memo() एक उच्च-क्रम वाला घटक है जो एक कार्यात्मक घटक के प्रतिपादन को याद रखता है। यह पिछले प्रॉप्स के साथ वर्तमान प्रॉप्स की उथली तुलना करके अनावश्यक पुन: प्रस्तुतीकरण को रोकता है। यदि प्रॉप्स नहीं बदले हैं, तो रिएक्ट घटक को रेंडर करना बंद कर देता है और अंतिम रेंडर किए गए परिणाम का पुन: उपयोग करता है।

import React from 'react';

const MemoizedComponent = React.memo(function MyComponent(props) {
  // Component logic
});

2. क्लास घटकों के लिए PureComponent लागू करें

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

import React, { PureComponent } from 'react';

class MyComponent extends PureComponent {
  // Component logic
}

3. इनलाइन फ़ंक्शन परिभाषाओं से बचें

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

class MyComponent extends React.Component {
  handleClick = () => {
    // Handle click
  };

  render() {
    return ;
  }
}

4. कार्यों को याद रखने के लिए यूज़कॉलबैक हुक का उपयोग करें

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

import React, { useCallback } from 'react';

function MyComponent() {
  const handleClick = useCallback(() => {
    // Handle click
  }, []);

  return ;
}

5. महंगी गणनाओं के लिए यूज़मेमो हुक का लाभ उठाएं

यूजमेमो हुक का उपयोग महंगी गणनाओं को याद रखने के लिए किया जाता है। यह प्रत्येक रेंडर पर मूल्यों की अनावश्यक पुन: गणना को रोकता है, जो प्रदर्शन में सुधार कर सकता है, विशेष रूप से जटिल गणनाओं के लिए।

import React, { useMemo } from 'react';

function MyComponent({ items }) {
  const filteredItems = useMemo(() => items.filter(item => item.visible), [items]);

  return (
    
    {filteredItems.map(item => (
  • {item.name}
  • ))}
); }

6. सूचियों में कुंजियों का सही उपयोग करें

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

    {items.map(item => (
  • {item.name}
  • ))}

7. डायनामिक आयात के साथ कोड विभाजन लागू करें

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

import React, { lazy, Suspense } from 'react';

const MyComponent = lazy(() => import('./MyComponent'));

function App() {
  return (
    Loading...}>
      
  );
}

8. बड़ी सूचियों के लिए विंडोइंग लागू करें

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

रिएक्ट-वर्चुअलाइज्ड और रिएक्ट-विंडो जैसी लाइब्रेरी, रिएक्ट अनुप्रयोगों के लिए विंडोिंग का कुशल कार्यान्वयन प्रदान करती हैं।

9. छवियों के लिए आलसी लोडिंग लागू करें

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

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

10. अपरिवर्तनीय डेटा संरचनाओं का उपयोग करें

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

Immutable.js और Immer जैसी लाइब्रेरी रिएक्ट अनुप्रयोगों में अपरिवर्तनीय डेटा के साथ काम करने के लिए अपरिवर्तनीय डेटा संरचनाएं और सहायक कार्य प्रदान करती हैं।

निष्कर्ष

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

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

रिएक्ट डेवलपमेंट में विशेषज्ञ सहायता के लिए, कुशल रिएक्टजेएस डेवलपर्स को नियुक्त करने के लिए विटोरक्लाउड टेक्नोलॉजीज से संपर्क करें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/viitorcloud/react-re-rendering-best-practices-for-optimal-performance-30bo?1 यदि कोई उल्लंघन है, तो कृपया हटाने के लिए स्टडी_गोलंग@163.com पर संपर्क करें। यह
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3