Server Components सिर्फ सर्वर पर चलते हैं, ब्राउज़र को कोई JavaScript नहीं भेजते, और सीधे डेटा await कर सकते हैं, जिससे fetch और useEffect और loading state वाली ज़्यादातर पाइपिंग हट जाती है। use client से चिह्नित Client Components अब भी interactivity, state और ब्राउज़र के APIs संभालते हैं। आप डेटा लाने का काम ऊपर server components में धकेलते हैं और client components को छोटे पत्तों जैसा रखते हैं, जिससे bundle सिकुड़ता है और डेटा का झरना सर्वर की तरफ चला जाता है।
इंटरव्यूअर यह क्यों पूछते हैं
यह सालों में React का सबसे बड़ा बदलाव है, तो इंटरव्यूअर जांच रहा है कि आप ताज़ा हैं और मार्केटिंग की भाषा दोहराने की जगह एक सीमा साफ बता सकते हैं। वे सुनना चाहते हैं कि आप समझते हैं कि serialization की सीमा कौन पार करता है, state कहां रह सकती है और कहां नहीं, और ट्रेड-ऑफ क्या हैं। यहां गोल मोल उत्साह बुरा लगता है; जो उम्मीदवार कोई असली बंदिश गिनाता है वह ऐसा लगता है जिसने इसे शिप किया है।
अपना जवाब कैसे स्ट्रक्चर करें
- दोनों तरह के components को एक एक लाइन में परिभाषित करें।
- समझाएं कि सीमा को क्या पार कर सकता है और क्या नहीं।
- इससे बनने वाले component tree की शक्ल बताएं।
- कोई एक ठोस ट्रेड-ऑफ बताएं जो आपने झेला है।
उदाहरण जवाब
मुझे जो मानसिक मॉडल जमा वह यह कि सीमा कोई folder नहीं, serialization की सीमा है। Server Components सर्वर पर render होते हैं और उनका कोड ब्राउज़र तक कभी नहीं पहुंचता, तो वहां इस्तेमाल हुई कोई भारी markdown या date library client पर शून्य किलोबाइट की पड़ती है। वे component के अंदर ही सीधे डेटाबेस कॉल await कर सकते हैं। जिस भी चीज़ में state, effects या कोई event handler है उसे ऊपर use client लिखकर Client Component बनना होगा, और उसमें जाने वाले props serializable होने चाहिए, तो आप functions या class instances नहीं, डेटा भेजते हैं। व्यवहार में इसका मतलब है कि मेरे पेड़ नीचे तक server components होते हैं जिनके छोटे interactive पत्ते होते हैं, और मैं सर्वर से लाया डेटा props में भेजता हूं। हाल के एक प्रोजेक्ट में जो ट्रेड-ऑफ मुझे मिला वह code review में मानसिक बोझ था, क्योंकि लोग एक छोटे से button के लिए parent पर use client लगा देते थे और चुपचाप पूरा subtree client पर खींच लाते थे। आखिर में हमने इसे पकड़ने के लिए एक lint नियम और CI में bundle size की जांच जोड़ी।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- इसमें use hook कहां फिट होता है?
- जिस form को सर्वर तक जाना और लौटना पड़े, उसे कैसे संभालते हैं?
- server component के अंदर लाए गए डेटा को cache कैसे करेंगे?
फुल स्टैक डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें