React डेवलपर इंटरव्यू सवाल

आप useMemo कब उठाएंगे और useCallback कब, और दोनों को कब छोड़ देंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

useMemo renders के बीच किसी गिनी हुई value को सहेजता है; useCallback किसी function के reference को। दोनों एक ही मशीन हैं, क्योंकि useCallback(fn, deps) असल में useMemo(() => fn, deps) है। इन्हें तब उठाइए जब कोई value सच में महंगी हो, या जब reference किसी effect की dependency हो या किसी memoized child को जाने वाला prop हो। सस्ती values के लिए दोनों छोड़ दीजिए, क्योंकि इनका हिसाब किताब मुफ्त नहीं है।

इंटरव्यूअर यह क्यों पूछते हैं

आदतन memoization React code की सबसे आम बदबुओं में है, इसलिए इंटरव्यूअर आदत नहीं, समझ चाहते हैं। वे जांचते हैं कि आप referential identity समझते हैं, कि आपको पता है कि किसी prop को memo करना तभी मदद करता है जब child खुद memoized हो, और कि आप hooks छिड़कने से पहले profiler खोलेंगे। 2026 में वे यह भी सुनना चाह सकते हैं कि React Compiler कहां इसकी जरूरत ही खत्म कर देता है।

अपना जवाब कैसे स्ट्रक्चर करें

  • एक लाइन में फर्क बताएं: value बनाम function का reference।
  • वे दो मामले दें जहां इसका सच में फायदा होता है।
  • बताएं कि इसे जोड़ने से पहले आप क्या नापते हैं।
  • React Compiler का जिक्र करें और बताएं कि हाथ से की जाने वाली memoization किधर जा रही है।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

ये एक ही औजार के दो चेहरे हैं। useMemo एक value सहेजता है, useCallback एक function, और अंदर से useCallback बस वही function लौटाता useMemo है। मैं इनमें से किसी को दो ही वजहों से उठाता हूं। एक, गणना सच में महंगी है, जैसे कुछ हजार rows को sort और group करना। दो, चीज की पहचान मायने रखती है, क्योंकि वह किसी effect की dependency है या React.memo में लिपटे किसी component को जाने वाला prop है। अगर इनमें से कुछ भी सच नहीं है तो मैं उसे छोड़ देता हूं, क्योंकि हर memo call भी एक तुलना और थोड़ी memory खर्च करती है, और code पढ़ने में ज्यादा शोर भरा हो जाता है। असल में मैं सबसे पहले React Profiler खोलकर देखता हूं कि दोबारा render होने की कोई कीमत है भी या नहीं। ज्यादातर बार असली हल memo नहीं होता, वह state को उसके इस्तेमाल की जगह के करीब ले जाना होता है ताकि आधा पेड़ render होना ही बंद कर दे। और React Compiler चालू किए नए projects में हाथ से की जाने वाली बहुत सी memoization खत्म हो जाती है, जिससे मैं खुश हूं; उसके बिना code बेहतर पढ़ा जाता है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • React.memo डिफॉल्ट रूप से क्या तुलना करता है और उसे कैसे बदलते हैं?
  • inline object वाला prop React.memo को क्यों बेकार कर देता है?
  • जो चीज context की किसी value पर निर्भर हो, उसे कैसे memoize करेंगे?

React डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं