controlled component में React की state ही सच की जड़ है: input अपनी value state से पढ़ता है और हर keystroke onChange से गुजरता है। uncontrolled component में value DOM के पास रहती है और आप उसे ref से या submit पर form के data से पढ़ते हैं। controlled से live validation और उससे निकलने वाला UI मिलता है; uncontrolled का मतलब है बड़े forms पर कहीं कम renders और कम code।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर जांचते हैं कि आपको पता है कि state असल में कहां रहती है और आप आदतन हर चीज controlled नहीं बना देते। वे लागत की समझ भी चाहते हैं, क्योंकि controlled input हर keystroke पर अपना subtree दोबारा render करता है, जो तीन fields के लिए ठीक है और अस्सी के लिए तकलीफदेह। आधुनिक जवाब form actions और उन libraries का जिक्र करता है जो जानबूझकर inputs को uncontrolled रखती हैं।
अपना जवाब कैसे स्ट्रक्चर करें
- दोनों को इस आधार पर परिभाषित करें कि value कहां रहती है।
- बताएं कि हर एक से क्या मिलता है, live validation बनाम कम renders।
- अपना डिफॉल्ट बताएं और वह मोड़ जहां आप बदल जाते हैं।
- form actions या किसी form library का जिक्र करें और बताएं कि वे uncontrolled की तरफ क्यों झुकती हैं।
उदाहरण जवाब
controlled का मतलब है value React के पास है: value state से आती है, onChange उसे वापस लिखता है, और बिना render हुए input बदल ही नहीं सकता। uncontrolled का मतलब है वह DOM के पास है और मैं उसे तभी पढ़ता हूं जब मुझे चाहिए, या तो ref से या submit हुए form data से। छोटे forms पर मेरा डिफॉल्ट controlled है, क्योंकि आम तौर पर मुझे user के टाइप करते वक्त validation चाहिए होती है या ऐसा field जो किसी दूसरे field पर निर्भर हो। जब form करीब पंद्रह बीस inputs से आगे बढ़ जाता है, या जब कोई ऐसा field आ जाता है जो हर keystroke पर महंगा दोबारा render चलाता है, तो मैं uncontrolled पर चला जाता हूं और blur तथा submit पर validate करता हूं। लोकप्रिय form libraries भी अंदर से यही करती हैं, वे inputs को register करके संकरी subscription रखती हैं, पूरे form को दोबारा render नहीं करतीं। React 19 के form actions के साथ मेरा झुकाव uncontrolled की तरफ और बढ़ जाता है, क्योंकि action को FormData मुफ्त मिल जाता है, तो सीधे create या edit वाले form के लिए मैं state पूरी तरह छोड़ सकता हूं और pending तथा error की हालत useActionState से संभाल सकता हूं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- जब कोई input uncontrolled से controlled हो जाता है तो React क्या चेतावनी देता है, और क्यों?
- किसी uncontrolled form को submit पर कैसे validate करेंगे?
- React 19 के form actions यहां आपका तरीका कैसे बदलते हैं?
React डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें