इन महत्वपूर्ण रिएक्ट हुक के साथ फॉर्म हैंडलिंग को गति दें जो कुछ प्रभावशाली अनुकूलन ट्वीक्स को सक्षम करते हैं।

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

रिएक्ट में useRef और useCallback हुक हैं, जो अनावश्यक अपडेट और री-रेंडर को कम करके मदद कर सकते हैं।

इन हुकों के सबसे प्रभावी अनुप्रयोगों का अन्वेषण करें और अपने रिएक्ट रूपों को गति दें।

useRef और useCallback हुक को समझना

रिएक्ट की सबसे प्रभावी प्रदर्शन-बढ़ाने वाली सुविधाओं में से दो हैं useRef और useCallback हुक।

उपयोग संदर्भ हुक एक परिवर्तनशील संदर्भ उत्पन्न करता है जो कई घटक रेंडरिंग में बना रह सकता है। इसके सामान्य उपयोगों में शामिल हैं DOM तत्वों तक पहुँचना, एक ऐसी स्थिति को संग्रहित करना जो फिर से रेंडर को ट्रिगर नहीं करती है, और महँगी गणनाओं को संचित करना।

आप मेमोरी-कुशल फ़ंक्शन का उपयोग कर सकते हैं,

instagram viewer
कॉलबैक का उपयोग करें, चाइल्ड घटकों पर निर्भर घटकों की कार्यक्षमता बढ़ाने के लिए एक हुक के रूप में। आप आमतौर पर इस विधि का उपयोग इवेंट हैंडलर और अन्य रूटीन के लिए करते हैं जो प्रॉपर के रूप में गुजरते हैं।

रिएक्ट में सामान्य प्रपत्र प्रदर्शन समस्याएँ

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

ये समस्याएँ आमतौर पर निम्नलिखित के कारण होती हैं:

  • अनावश्यक री-रेंडर: एक कॉम्पोनेंट प्रोप या एक्सप्रेशंस में बदलाव के कारण अनावश्यक री-रेंडर के साथ एप्लिकेशन को धीमा कर सकता है जिसका परिणाम पर कोई प्रभाव नहीं पड़ता है।
  • महँगी गणनाएँ: एक घटक अनुप्रयोग के प्रदर्शन को कम कर सकता है यदि यह प्रत्येक रेंडर के लिए महंगी संगणनाएँ करता है।
  • अप्रभावी राज्य प्रबंधन: एक घटक द्वारा अप्रभावी राज्य प्रबंधन के कारण व्यर्थ अद्यतन और पुन: रेंडर हो सकते हैं।

फॉर्म ऑप्टिमाइज़ेशन के लिए useRef और useCallback हुक का उपयोग कैसे करें

आइए देखें कि हमारे फॉर्म को गति देने के लिए रिएक्ट के यूजरेफ और कॉलबैक हुक का उपयोग कैसे करें।

UseRef के साथ प्रपत्र तत्वों तक पहुँचना

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

आयात प्रतिक्रिया, {useRef} से'प्रतिक्रिया';

समारोहप्रपत्र() {
कॉन्स्ट इनपुटरफ = यूसेरफ (व्यर्थ);

समारोहहैंडल सबमिट करें(आयोजन) {
आयोजन।चूक को रोकें();
कॉन्स्ट इनपुटवैल्यू = inputRef.current.value;
सांत्वना देनालॉग (इनपुटवैल्यू);
}

वापस करना (
<प्रपत्रऑनसबमिट={हैंडलसबमिट}>
<इनपुटप्रकार="मूलपाठ"संदर्भ={inputRef} />
<बटनप्रकार="जमा करना">जमा करनाबटन>
प्रपत्र>
);
}

यह उदाहरण useRef हुक का उपयोग करके इनपुट घटक को संदर्भित करता है। आप फ़ॉर्म सबमिट करने के बाद फिर से प्रस्तुत किए बिना इनपुट मान तक पहुंच सकते हैं।

कॉलबैक का उपयोग करके ईवेंट हैंडलर्स को ऑप्टिमाइज़ करें

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

आयात प्रतिक्रिया, {useCallback, useState} से'प्रतिक्रिया';

समारोहप्रपत्र() {
कॉन्स्ट [वैल्यू, सेटवैल्यू] = यूज़स्टेट ('');

कॉन्स्ट हैंडल चेंज = कॉलबैक का उपयोग करें ((आयोजन) => {
सेटवैल्यू (event.target.value);
}, []);

कॉन्स्ट हैंडल सबमिट करें = कॉलबैक का उपयोग करें ((आयोजन) => {
घटना.रोकथाम ();
सांत्वना देनालॉग (मान);
}, [कीमत]);

वापस करना (


"मूलपाठ" मान = {मान} ऑन चेंज = {हैंडल चेंज} />

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

UseRef और useCallback हुक के साथ फॉर्म ऑप्टिमाइज़ेशन

आइए कुछ वास्तविक उदाहरण देखें कि कैसे useRef और useCallback हुक का उपयोग करके रिएक्ट में फॉर्म को गति दी जाए।

डिबगिंग इनपुट

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

आयात प्रतिक्रिया, {useCallback, useState} से'प्रतिक्रिया';

समारोहप्रपत्र() {
कॉन्स्ट [वैल्यू, सेटवैल्यू] = यूज़स्टेट ('');

कॉन्स्ट debouncedHandleChange = useCallback(
वाद-विवाद करना ((कीमत) => {
सांत्वना देनालॉग (मान);
}, 500),
[]
);

समारोहहैंडल चेंज(आयोजन) {
मूल्य ते करना(आयोजन।लक्ष्य।कीमत);
ने हैंडल चेंज किया(आयोजन।लक्ष्य।कीमत);
}

वापस करना (
<प्रपत्र>
<इनपुटप्रकार="मूलपाठ"कीमत={कीमत}परिवर्तन पर={हैंडलचेंज} />
प्रपत्र>
);
}

समारोहdebounce(फंक, रुको) {
होने देना समय समाप्त;

वापस करनासमारोह (...तर्क) {
क्लियरटाइमआउट (टाइमआउट);

टाइमआउट = सेटटाइमआउट (() => {
func.apply (यह, तर्क);
}, इंतज़ार);
};
}

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

आलसी प्रारंभ

लेज़ी इनिशियलाइज़ेशन महंगे संसाधनों के निर्माण को तब तक टालने की एक तकनीक है जब तक कि उनकी वास्तव में आवश्यकता न हो। प्रपत्रों के संदर्भ में, किसी ऐसे राज्य को प्रारंभ करना जो केवल तब उपयोग किया जाता है जब फ़ॉर्म सबमिट होता है।

निम्न उदाहरण आलसी रूप से प्रारंभ करता है formState useRef हुक का उपयोग करके वस्तु। यह वास्तव में आवश्यक होने तक फॉर्मस्टेट ऑब्जेक्ट के निर्माण को स्थगित करके फॉर्म के प्रदर्शन में सुधार कर सकता है।

आयात प्रतिक्रिया, {useRef, useState} से'प्रतिक्रिया';

समारोहप्रपत्र() {
कॉन्स्ट [वैल्यू, सेटवैल्यू] = यूज़स्टेट ('');
कॉन्स्ट फॉर्मस्टेट रेफ = यूज रेफ (व्यर्थ);

समारोहहैंडल सबमिट करें(आयोजन) {
आयोजन।चूक को रोकें();

कॉन्स्ट फॉर्मस्टेट = फॉर्मस्टेटरेफ.करंट || {
फ़ील्ड 1: '',
फ़ील्ड 2: '',
फ़ील्ड3: '',
};

सांत्वना देनालॉग (फॉर्मस्टेट);
}

समारोहहैंडलइनपुट चेंज(आयोजन) {
मूल्य ते करना(आयोजन।लक्ष्य।कीमत);
}

वापस करना (
<प्रपत्रऑनसबमिट={हैंडलसबमिट}>
<इनपुटप्रकार="मूलपाठ"कीमत={कीमत}परिवर्तन पर={हैंडलइनपुट चेंज} />
<बटनप्रकार="जमा करना">जमा करनाबटन>
प्रपत्र>
);
}

यह उदाहरण फॉर्मस्टेट ऑब्जेक्ट को आलसी रूप से आरंभ करने के लिए useRef हुक का उपयोग करता है। ऐसा करने से फॉर्मस्टेट ऑब्जेक्ट की पीढ़ी को तब तक स्थगित करके फॉर्म के प्रदर्शन में सुधार हो सकता है जब तक कि वास्तव में इसकी आवश्यकता न हो।

UseRef और useCallback हुक का उपयोग करने के लिए सर्वोत्तम अभ्यास

useRef और useCallback हुक की उपयोगिता को अधिकतम करने के लिए, निम्नलिखित अनुशंसित प्रथाओं का पालन करें:

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

इन सर्वोत्तम प्रथाओं का पालन करके, आप तेज़, कुशल घटक बना सकते हैं जो एक सहज उपयोगकर्ता अनुभव प्रदान करते हैं और आपके रिएक्ट ऐप्स के प्रदर्शन को बढ़ाते हैं।

प्रतिक्रिया में प्रपत्र प्रदर्शन का अनुकूलन करें

UseRef और useCallback हुक शानदार उपकरण हैं जो अनावश्यक री-रेंडर और अपडेट को कम करने में मदद कर सकते हैं, जो आपके फॉर्म के प्रदर्शन में सुधार कर सकते हैं।

इन हुकों का ठीक से लाभ उठाकर और महंगे संसाधनों के डिबॉन्सिंग इनपुट और आलसी आरंभीकरण जैसी सर्वोत्तम प्रथाओं का पालन करके, आप ऐसे फॉर्म विकसित कर सकते हैं जो तेज़ और कुशल हैं।