व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना
वास्तविक कॉम्पोनेंट उदाहरणों में खोज इनपुट पर debounce और स्क्रॉल तथा आकार-बदलाव श्रोताओं पर throttle लागू कीजिए।
व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
useDebounce के साथ लाइव खोज
लाइव खोज घटक में दो अलग-अलग स्थिति चर बनाए रखिए: inputValue कच्चे इनपुट के लिए (यह हर कुंजी-दबाने पर अपडेट होता है और इनपुट फ़ील्ड को प्रतिक्रियाशील रखता है) और debouncedQuery, जो useDebounce(inputValue, 300) से मिलता है (यह टाइप करना रुकने के 300ms बाद अपडेट होता है और एपीआई कॉल शुरू करता है)। यह विभाजन अत्यधिक अनुरोधों के बिना तुरंत दृश्य प्रतिक्रिया देता है।
खोज के दौरान लोड होने की स्थिति
उपयोगकर्ता के टाइप करना शुरू करते ही लोडिंग स्पिनर दिखाइए, केवल एपीआई कॉल शुरू होने पर नहीं। जब भी inputValue !== debouncedQuery हो, isLoading: true सेट कीजिए — डिबाउंस लंबित रहने तक ये दोनों असंगत होते हैं। क्वेरी स्थिर हो जाए और डेटा-प्राप्ति पूरी हो जाए, तो इसे वापस असत्य पर सेट कीजिए। इससे उपयोगकर्ताओं को पूरे समय प्रतिक्रियाशील लोडिंग संकेतक दिखाई देता है।
useThrottle के साथ स्क्रॉल हैंडलर
पैरालैक्स प्रभाव या पठन-प्रगति पट्टी स्क्रॉल स्थिति के आधार पर अपडेट होती है। 16ms की देरी का उपयोग करके स्क्रॉल हैंडलर को अधिकतम 60fps तक थ्रॉटल कीजिए: const throttledScrollY = useThrottle(scrollY, 16)। हर स्क्रॉल पिक्सेल पर स्थिति की पुनर्गणना करने की लागत के बिना यूआई सुचारु रूप से अपडेट होता है।
useDebounce के साथ विंडो का आकार बदलना
लेआउट की पुनर्गणना के लिए विंडो के आकार में बदलाव को सुनना थ्रॉटल करने के बजाय डिबाउंस करना बेहतर है। लेआउट गणना को उपयोगकर्ता द्वारा आकार बदलना पूरा करने के बाद केवल एक बार चलने की आवश्यकता होती है। विंडो के आयामों पर 200ms का डिबाउंस उपयोग कीजिए। आकार बदलते समय यूआई एक सरल स्थिति दिखा सकता है; पुनर्गणित लेआउट आकार बदलना रुकने पर दिखाई देगा।
AbortController के साथ डिबाउंस को संयोजित करना
जब debouncedQuery बदलता है, तो नया AbortController बनाइए और उसका signal fetch(url, { signal }) को दीजिए। ऐसी सफ़ाई फ़ंक्शन लौटाइए जो controller.abort() कॉल करे। इससे नई डिबाउंस की गई क्वेरी आने पर पिछली क्वेरी का जारी अनुरोध रद्द हो जाता है और ऐसी दौड़ की स्थितियाँ रोकी जाती हैं जिनमें धीमी पुरानी प्रतिक्रिया तेज़ नई प्रतिक्रिया को अधिलेखित कर देती है।
Abort के बिना दौड़ की स्थिति
AbortController के बिना, यदि उपयोगकर्ता "re" टाइप करके प्रतीक्षा करे और फिर "react" टाइप करे, तो दूसरी क्वेरी पहली से पहले लौट सकती है (कैशिंग के कारण)। खोज परिणाम कुछ समय के लिए रिएक्ट के परिणाम दिखाएँगे और फिर पुराने "re" परिणामों से अधिलेखित हो जाएँगे। AbortController पहले अनुरोध को पूरी तरह रद्द करके इसे रोकता है।
ऑटोकम्प्लीट ड्रॉपडाउन पैटर्न
ड्रॉपडाउन एपीआई कॉल के लिए डिबाउंस और इनपुट दिखाने के लिए तुरंत अपडेट होने वाली स्थिति को मिलाता है। inputValue यह नियंत्रित करता है कि टेक्स्ट फ़ील्ड में क्या दिखाई दे। useDebounce(inputValue, 250) यह नियंत्रित करता है कि सुझावों के लिए डेटा-प्राप्ति कब शुरू हो। सुझाव सूची प्राप्त परिणामों की स्थिति से रेंडर होती है, जो दोनों इनपुट स्थितियों से अलग होती है।
दर-सीमित एसिंक्रोनस सत्यापन
एसिंक्रोनस फ़ॉर्म सत्यापन, जैसे यह जाँचना कि कोई ईमेल पहले से मौजूद है या नहीं, डिबाउंस किया जाना चाहिए, ताकि हर कुंजी-दबाने पर सर्वर पर अत्यधिक अनुरोध न भेजे जाएँ। फ़ील्ड मान पर 400ms का डिबाउंस उपयोग कीजिए और डिबाउंस किए गए मान पर निर्भर useEffect में सत्यापन अनुरोध भेजिए। सत्यापन लंबित रहने तक फ़ील्ड में स्पिनर दिखाइए।
डिबाउंस के साथ फ़ॉर्म का स्वचालित सहेजना
उपयोगकर्ता के टाइप करते समय फ़ॉर्म की सामग्री को स्वचालित रूप से सहेजने के लिए डिबाउंस बिल्कुल उपयुक्त है। फ़ॉर्म मानों के ऑब्जेक्ट पर 1000ms का डिबाउंस सेट कीजिए। जब डिबाउंस किया गया मान बदले, तो localStorage या किसी एपीआई एंडपॉइंट पर सहेजने की प्रक्रिया शुरू कीजिए। डिबाउंस लंबित रहने तक उपयोगकर्ता को "सहेजा जा रहा है..." संकेतक और अनुरोध पूरा होने पर "सहेजा गया" दिखाई देगा।
सही विलंब चुनना
विलंब के मान उपयोगकर्ता अनुभव से जुड़े निर्णय होते हैं। खोज के लिए 200-300ms प्रतिक्रियाशीलता और कम अनुरोधों के बीच संतुलन बनाता है। आकार बदलने के लिए 150-200ms स्वीकार्य है, क्योंकि उपयोगकर्ता अपेक्षा करते हैं कि आकार बदलने के बाद लेआउट स्थिर हो जाए। स्वचालित सहेजने के लिए 1000ms उपयोगकर्ता को सहेजने से पहले एक वाक्य टाइप करने का समय देता है। अपेक्षित सहभागिता गति के आधार पर इसे समायोजित कीजिए।
एकाधिक तकनीकों को संयोजित करना
वास्तविक ऐप्लिकेशन में अक्सर एक साथ कई अनुकूलनों की आवश्यकता होती है। कोई दस्तावेज़ संपादक स्वचालित सहेजने को डिबाउंस (1s) कर सकता है, शब्द-संख्या गणना को थ्रॉटल (500ms) कर सकता है और विश्लेषण के लिए IntersectionObserver का उपयोग कर सकता है। ये तकनीकें अच्छी तरह साथ काम करती हैं, क्योंकि प्रत्येक अपने अलग टाइमर और दायरे पर स्वतंत्र रूप से काम करती है।
AbortController के साथ डिबाउंस को संयोजित करना
आपको AbortController के साथ डिबाउंस की गई खोज क्वेरी का उपयोग क्यों करना चाहिए?
पाठ का पुनरावलोकन: डिबाउंस और थ्रॉटल का व्यावहारिक उपयोग
खोज इनपुट, आकार बदलने वाले हैंडलर और फ़ॉर्म के स्वचालित सहेजने के लिए useDebounce का उपयोग कीजिए। स्क्रॉल और माउस की गति के लिए useThrottle का उपयोग कीजिए। दौड़ की स्थितियाँ रोकने के लिए डिबाउंस की गई एपीआई कॉल को हमेशा AbortController के साथ संयोजित कीजिए। यूआई को प्रतिक्रियाशील और जानकारीपूर्ण बनाए रखने के लिए जब भी inputValue !== debouncedQuery हो, लोड होने की स्थिति दिखाइए।
एआई शिक्षक के साथ React सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 88
- पाठ
- 324
अक्सर पूछे जाने वाले प्रश्न
क्या “व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना” पाठ निःशुल्क है?
हाँ—“व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना” में मैं क्या सीखूँगा?
वास्तविक कॉम्पोनेंट उदाहरणों में खोज इनपुट पर debounce और स्क्रॉल तथा आकार-बदलाव श्रोताओं पर throttle लागू कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- UI में Debounce और Throttle क्यों महत्वपूर्ण हैं
- कस्टम Hook useDebounce लागू करना
- कस्टम Hook useThrottle लागू करना
- व्यावहारिक उपयोग: खोज, स्क्रॉल, आकार बदलना