Next.js डेवलपर्स की बढ़ती मांग के साथ, नौकरी चाहने वालों को Next.js इंटरव्यू के लिए तैयार रहने की जरूरत है।
इस लेख में, मैंने आमतौर पर पूछे जाने वाले नेक्स्ट.जेएस साक्षात्कार प्रश्नों और उत्तरों को कठिनाई स्तर के आधार पर तीन वर्गों में व्यवस्थित किया है: शुरुआती, मध्यवर्ती और विशेषज्ञ।
क्या आप अपने Next.js इंटरव्यू में महारत हासिल करना चाहते हैं?
यदि हां, तो यह मार्गदर्शिका आपके लिए है।
Next.js एक रिएक्ट-आधारित ओपन-सोर्स फ्रेमवर्क है जो डेवलपर्स को सर्वर-साइड रेंडर किए गए रिएक्ट एप्लिकेशन बनाने में मदद करता है।
रिएक्ट और नेक्स्ट.जेएस के बीच मुख्य अंतर यह है कि वे रूटिंग को कैसे हैंडल करते हैं। रिएक्ट क्लाइंट-साइड रूटिंग का उपयोग करता है, जिसका अर्थ है कि पेज ट्रांज़िशन पूरी तरह से क्लाइंट-साइड पर जावास्क्रिप्ट का उपयोग करके नियंत्रित किया जाता है।
इसके विपरीत, Next.js सर्वर-साइड रूटिंग प्रदान करता है, जिसका अर्थ है कि सर्वर रूटिंग को संभालता है और क्लाइंट को प्री-रेंडर पेज भेजता है, जिसके परिणामस्वरूप पेज लोड तेजी से होता है और SEO बेहतर होता है।
Next.js स्वचालित कोड विभाजन, स्थिर साइट निर्माण, और गतिशील आयात जैसी अतिरिक्त सुविधाएँ भी प्रदान करता है।
Next.js रिएक्ट की तुलना में सर्वर-साइड रेंडरिंग, स्वचालित कोड विभाजन, स्थिर साइट निर्माण, गतिशील आयात, अनुकूलित प्रदर्शन और आसान परिनियोजन सहित कई लाभ प्रदान करता है। इसके अतिरिक्त, Next.js बिल्ट-इन SEO और एनालिटिक्स का समर्थन करता है, जिससे सर्च इंजन के लिए आपके एप्लिकेशन को अनुकूलित करना और उपयोगकर्ता जुड़ाव को ट्रैक करना आसान हो जाता है।
एक नया नेक्स्ट.जेएस एप्लिकेशन बनाने के लिए, आप create-next-app
कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, आप अपने टर्मिनल में निम्न आदेश चला सकते हैं: npx create-next-app my-app
। यह my-app
नाम से एक नया Next.js एप्लिकेशन बनाएगा।
सर्वर-साइड रेंडरिंग (SSR) क्लाइंट के ब्राउज़र पर भेजने से पहले सर्वर पर एक वेब पेज को रेंडर करने की प्रक्रिया है। SSR महत्वपूर्ण है क्योंकि यह सर्च इंजन को आपकी वेबसाइट की सामग्री को क्रॉल और इंडेक्स करने की अनुमति देता है, जिससे आपकी वेबसाइट के SEO में सुधार हो सकता है। इसके अतिरिक्त, SSR प्रारंभिक पृष्ठ लोड समय में सुधार कर सकता है और धीमे इंटरनेट कनेक्शन या उपकरणों वाले उपयोगकर्ताओं के लिए उपयोगकर्ता अनुभव में सुधार कर सकता है।
क्लाइंट-साइड रेंडरिंग (CSR) सर्वर से प्रारंभिक HTML, CSS और जावास्क्रिप्ट प्राप्त करने के बाद जावास्क्रिप्ट का उपयोग करके क्लाइंट के ब्राउज़र पर एक वेब पेज को रेंडर करने की प्रक्रिया है। SSR और CSR के बीच मुख्य अंतर यह है कि SSR क्लाइंट के ब्राउज़र को पूरी तरह से रेंडर किया गया HTML पेज भेजता है, जबकि CSR एक खाली HTML पेज भेजता है जो जावास्क्रिप्ट द्वारा पॉप्युलेट किया जाता है।
स्टेटिक साइट जनरेशन (एसएसजी) आपकी वेबसाइट पर बिल्ड समय पर प्रत्येक पृष्ठ के लिए एक स्थिर HTML, CSS और जावास्क्रिप्ट फ़ाइल बनाने की प्रक्रिया है। SSG और SSR के बीच मुख्य अंतर यह है कि SSG एक स्थिर फ़ाइल उत्पन्न करता है जिसे सामग्री वितरण नेटवर्क (CDN) से परोसा जा सकता है, जबकि SSR HTML को गतिशील रूप से सर्वर पर उत्पन्न करता है और इसे क्लाइंट के ब्राउज़र पर भेजता है।
Next.js फ़ाइल-आधारित रूटिंग का उपयोग करता है, जिसका अर्थ है कि आप pages
निर्देशिका में संबंधित URL पथ के साथ एक नई फ़ाइल बनाकर एक पृष्ठ बना सकते हैं। उदाहरण के लिए, URL पथ /about
के साथ एक पृष्ठ बनाने के लिए, आप pages
निर्देशिका में about.js
नामक फ़ाइल बनाएंगे।
getStaticProps
फंक्शन का उद्देश्य क्या है? getStaticProps
फ़ंक्शन का उपयोग स्थैतिक साइट जनरेशन के लिए बिल्ड समय पर डेटा लाने के लिए किया जाता है। इस फ़ंक्शन को निर्माण प्रक्रिया के दौरान कहा जाता है और इसका उपयोग बाहरी एपीआई या डेटाबेस से डेटा लाने के लिए किया जा सकता है। getStaticProps
द्वारा लौटाया गया डेटा तब पृष्ठ घटक के लिए प्रॉप्स के रूप में पास किया जाता है।
नेक्स्ट.जेएस नेक्स्ट.जेएस एप्लिकेशन में पृष्ठों के बीच डेटा पास करने के कई तरीके प्रदान करता है, जिसमें यूआरएल क्वेरी पैरामीटर, Router
एपीआई और रेडक्स या रिएक्ट कॉन्टेक्स्ट जैसी राज्य प्रबंधन लाइब्रेरी शामिल हैं। आप सर्वर पर डेटा लाने के लिए getServerSideProps
फ़ंक्शन का भी उपयोग कर सकते हैं और इसे पृष्ठ घटक के प्रॉप्स के रूप में पास कर सकते हैं।
Next.js अनुप्रयोगों को विभिन्न प्रकार के प्लेटफ़ॉर्म पर तैनात किया जा सकता है, जिसमें AWS, Google क्लाउड प्लेटफ़ॉर्म और Microsoft Azure जैसी क्लाउड सेवाओं के साथ-साथ Vercel और Netlify जैसे प्लेटफ़ॉर्म शामिल हैं। नेक्स्ट.जेएस एप्लिकेशन को तैनात करने के लिए, आप एसएसजी के लिए स्थिर फाइलों को निर्यात करने के लिए next export
कमांड का उपयोग कर सकते हैं या वर्सेल के सीएलआई या एडब्ल्यूएस इलास्टिक बीनस्टॉक जैसे प्लेटफॉर्म-विशिष्ट परिनियोजन उपकरण का उपयोग कर सकते हैं।
सर्वर रहित आर्किटेक्चर एक क्लाउड कंप्यूटिंग मॉडल है जहां क्लाउड प्रदाता बुनियादी ढांचे का प्रबंधन करता है और मांग के आधार पर संसाधनों को स्वचालित रूप से मापता है। Next.js का उपयोग सर्वर रहित आर्किटेक्चर के साथ AWS लैम्ब्डा या Google क्लाउड फ़ंक्शंस जैसे सर्वर रहित प्लेटफ़ॉर्म पर एप्लिकेशन को तैनात करके किया जा सकता है।
getServerSideProps
और getStaticProps
के बीच Next.js में क्या अंतर है? getServerSideProps
फ़ंक्शन का उपयोग सर्वर-साइड रेंडरिंग के लिए रनटाइम पर सर्वर पर डेटा लाने के लिए किया जाता है, जबकि getStaticProps
फ़ंक्शन का उपयोग स्थैतिक साइट जनरेशन के लिए बिल्ड समय पर डेटा लाने के लिए किया जाता है।
getStaticPaths
फ़ंक्शन का उद्देश्य क्या है? गतिशील डेटा वाले पृष्ठों के लिए गतिशील पथ उत्पन्न करने के लिए getStaticPaths
फ़ंक्शन का उपयोग किया जाता है। इस फ़ंक्शन को निर्माण प्रक्रिया के दौरान कहा जाता है और इसका उपयोग गतिशील डेटा के लिए संभावित मानों की सूची बनाने के लिए किया जा सकता है। getStaticPaths
द्वारा लौटाया गया डेटा तब प्रत्येक संभावित मान के लिए स्थिर फ़ाइलें उत्पन्न करने के लिए उपयोग किया जाता है।
Next.js किसी URL पथ में डायनामिक सेगमेंट को इंगित करने के लिए वर्ग कोष्ठक []
का उपयोग करता है। उदाहरण के लिए, URL पथ /blog/[slug]
के साथ ब्लॉग पोस्ट के लिए एक गतिशील मार्ग बनाने के लिए, आप pages/blog
निर्देशिका में [slug].js
नामक फ़ाइल बनाएंगे।
Next.js स्वचालित रूप से आपके कोड को छोटे टुकड़ों में विभाजित कर देता है जिसे उपयोगकर्ता द्वारा किसी नए पृष्ठ पर नेविगेट करने पर मांग पर लोड किया जा सकता है। यह प्रारंभिक पृष्ठ लोड समय को कम करने और आपके एप्लिकेशन के प्रदर्शन को बेहतर बनाने में मदद करता है।
_app.js
फ़ाइल का उद्देश्य क्या है? _app.js
फ़ाइल का उपयोग संपूर्ण एप्लिकेशन को लपेटने के लिए किया जाता है और वैश्विक शैली, लेआउट घटक और संदर्भ प्रदाता प्रदान करता है। यह फ़ाइल प्रत्येक पृष्ठ अनुरोध पर कॉल की जाती है और इसका उपयोग आपके एप्लिकेशन में सामान्य कार्यक्षमता जोड़ने के लिए किया जा सकता है।
Next.js प्रमाणीकरण को लागू करने के लिए कई विकल्प प्रदान करता है, जिसमें JSON वेब टोकन (JWT), OAuth और तृतीय-पक्ष लाइब्रेरी जैसे NextAuth.js शामिल हैं। आप सर्वर-साइड प्रमाणीकरण लागू करने के लिए सर्वर-साइड रेंडरिंग और सत्र प्रबंधन का भी उपयोग कर सकते हैं।
एक कंटेनर घटक एक घटक की स्थिति और तर्क के प्रबंधन के लिए जिम्मेदार होता है, जबकि एक प्रस्तुतिकरण घटक कंटेनर घटक से नीचे दिए गए प्रॉप्स के आधार पर UI को रेंडर करने के लिए जिम्मेदार होता है।
useEffect
हुक का उद्देश्य क्या है और यह Next.js से कैसे संबंधित है? useEffect
हुक का उपयोग कार्यात्मक घटक में साइड इफेक्ट करने के लिए किया जाता है, जैसे कि एपीआई से डेटा प्राप्त करना या दस्तावेज़ शीर्षक को अपडेट करना। Next.js में, useEffect
हुक का उपयोग किया जा सकता है
fetch
API या तृतीय-पक्ष लाइब्रेरी जैसे Axios या SWR का उपयोग करके क्लाइंट-साइड डेटा फ़ेचिंग करें।
Next.js एरर हैंडलिंग के लिए कई विकल्प प्रदान करता है, जिसमें कस्टम एरर पेज, getInitialProps
के साथ सर्वर-साइड एरर हैंडलिंग और रिएक्ट एरर बाउंड्री के साथ क्लाइंट-साइड एरर हैंडलिंग शामिल हैं। आप त्रुटि निगरानी और रिपोर्टिंग के लिए संतरी या रोलबार जैसी तृतीय-पक्ष लाइब्रेरी का भी उपयोग कर सकते हैं।
Next.js next-i18next
लाइब्रेरी के माध्यम से i18n के लिए अंतर्निहित समर्थन प्रदान करता है। आप इस लाइब्रेरी का उपयोग अपने एप्लिकेशन के लिए अनुवाद बनाने और उपयोगकर्ता की प्राथमिकताओं या ब्राउज़र सेटिंग्स के आधार पर भाषाओं के बीच स्विच करने के लिए कर सकते हैं।
getServerSideProps
फ़ंक्शन का उद्देश्य क्या है, और यह getInitialProps
फ़ंक्शन से कैसे संबंधित है? getServerSideProps
फ़ंक्शन का उपयोग सर्वर-साइड रेंडरिंग के लिए रनटाइम पर सर्वर पर डेटा लाने के लिए किया जाता है, जबकि getInitialProps
फ़ंक्शन का उपयोग रनटाइम पर क्लाइंट या सर्वर पर डेटा लाने के लिए किया जाता है। Next.js 9.3 और बाद में, getServerSideProps
के पक्ष में getInitialProps
फ़ंक्शन को हटा दिया गया है।
नेक्स्ट.जेएस Cache-Control
हेडर के माध्यम से सर्वर-साइड कैशिंग के लिए अंतर्निहित समर्थन प्रदान करता है। आप getServerSideProps
फ़ंक्शन का उपयोग करके या पृष्ठ घटक में cacheControl
प्रॉपर्टी सेट करके प्रत्येक पृष्ठ के लिए कैश अवधि सेट कर सकते हैं।
हम एपीआई प्रतिक्रियाओं या डेटाबेस प्रश्नों को कैश करने के लिए Redis या Memcached जैसी कैशिंग लाइब्रेरी का भी उपयोग कर सकते हैं। सीडीएन कैशिंग या एज कैशिंग जैसे विकल्प भी स्थैतिक संपत्ति के प्रदर्शन को बेहतर बनाने और सर्वर पर लोड को कम करने के लिए लागू किए जा सकते हैं।
कोड विभाजन, आलसी लोडिंग, छवि अनुकूलन, सर्वर-साइड कैशिंग और सीडीएन कैशिंग सहित नेक्स्ट.जेएस एप्लिकेशन के प्रदर्शन को अनुकूलित करने के लिए कई रणनीतियां हैं। आप सुधार के क्षेत्रों की पहचान करने के लिए लाइटहाउस या वेबपेजटेस्ट जैसे प्रदर्शन निगरानी उपकरणों का भी उपयोग कर सकते हैं।
Next.js API Routes
फीचर के जरिए सर्वर रहित कार्यों के लिए अंतर्निहित समर्थन प्रदान करता है। आप वांछित एंडपॉइंट नाम के साथ pages/api
निर्देशिका में फ़ाइल बनाकर और सर्वर-साइड तर्क को लागू करके सर्वर रहित फ़ंक्शन बना सकते हैं।
आप Contentful, Strapi, या Sanity जैसे तृतीय-पक्ष CMS का उपयोग करके Next.js के साथ एक हेडलेस CMS लागू कर सकते हैं। ये सीएमएस प्लेटफॉर्म सामग्री लाने और अपडेट करने के लिए एपीआई प्रदान करते हैं, जिसे getStaticProps
या getServerSideProps
फ़ंक्शंस का उपयोग करके Next.js के साथ एकीकृत किया जा सकता है।
हम सर्वर से डेटा प्राप्त करने के लिए ग्राफक्यूएल या रेस्ट एपीआई का उपयोग कर सकते हैं और इसे कंपोनेंट को प्रॉपर के रूप में पास कर सकते हैं। डेटा लाने और कैशिंग को संभालने के लिए swr
या react-query
जैसे पुस्तकालयों का भी उपयोग किया जा सकता है।
प्रयोग बनाने और उपयोगकर्ता के व्यवहार को ट्रैक करने के लिए हम Google Optimize या Optimizely जैसे तृतीय-पक्ष टूल का उपयोग कर सकते हैं। हम एप्लिकेशन के विभिन्न रूपों का परीक्षण करने के लिए फीचर फ़्लैग या सशर्त रेंडरिंग जैसे कस्टम समाधानों का भी उपयोग कर सकते हैं।
नेक्स्ट.जेएस एप्लिकेशन में रीयल-टाइम अपडेट को संभालने के लिए, आप क्लाइंट और सर्वर के बीच रीयल-टाइम कनेक्शन स्थापित करने के लिए सर्वर-भेजे गए ईवेंट, वेब सॉकेट या सॉकेट.आईओ जैसी तृतीय-पक्ष लाइब्रेरी का उपयोग कर सकते हैं। आप एप्लिकेशन में रीयल-टाइम डेटा अपडेट को संभालने के लिए react-use
या redux
जैसी लाइब्रेरी का भी उपयोग कर सकते हैं।
नेक्स्ट.जेएस एप्लिकेशन में परीक्षण और निरंतर एकीकरण को लागू करने के लिए, आप परीक्षण लिखने और चलाने के लिए जेस्ट या सरू जैसे परीक्षण ढांचे का उपयोग कर सकते हैं। आप परीक्षण और परिनियोजन प्रक्रिया को स्वचालित करने के लिए सर्किलसीआई या ट्रैविस सीआई जैसी निरंतर एकीकरण सेवाओं का भी उपयोग कर सकते हैं। इसके अतिरिक्त, आप कोड गुणवत्ता उपकरण जैसे ESLint या Prettier का उपयोग कोड स्थिरता और रखरखाव सुनिश्चित करने के लिए कर सकते हैं।
मैंने इन Next.js साक्षात्कार प्रश्नों और उत्तरों को संक्षिप्त और प्रासंगिक बनाया है। यह लेख नेक्स्ट.जेएस इंटरव्यू की तैयारी कर रहे किसी भी व्यक्ति के लिए एक त्वरित चीट शीट की तरह काम करेगा।
लेकिन, याद रखें, नौकरी के लिए सही फिट होने के लिए आपके पास पहले से ही नेक्स्ट.जेएस के साथ काम करने का अच्छा अनुभव होना चाहिए।
आपको कामयाबी मिले!