नेक्स्ट.जेएस के इस संस्करण में, हम पता लगाएंगे कि क्लाइंट और सर्वर घटक क्या हैं, उनके अंतर, प्रत्येक का उपयोग कब करना है, और उन्हें अपने में लागू करने में आपकी सहायता के लिए व्यावहारिक उदाहरण प्रदान करेंगे। परियोजनाएं।
नेक्स्ट.जेएस में, क्लाइंट कंपोनेंट्स और सर्वर कंपोनेंट्स के बीच स्पष्ट अंतर है। यह पृथक्करण आपको कोड को कहां और कैसे संसाधित करना है, इसके बारे में बेहतर निर्णय लेने की अनुमति देता है, जो सीधे प्रदर्शन और उपयोगकर्ता अनुभव को प्रभावित करता है।
क्लाइंट कंपोनेंट्स ब्राउज़र में चलते हैं, जिससे विंडो या दस्तावेज़ जैसे ब्राउज़र एपीआई तक इंटरैक्टिविटी और पहुंच की अनुमति मिलती है। वे आपके एप्लिकेशन के गतिशील इंटरफ़ेस को प्रबंधित करने और उपयोगकर्ता क्रियाओं पर प्रतिक्रिया देने के लिए आदर्श हैं।
'use client'; // Indicates that this component runs on the client import { useState } from 'react'; export default function ClientComponent() { const [count, setCount] = useState(0); return (); }Client-side Counter
The count value is: {count}
यह क्लासिक उदाहरण एक काउंटर है जो उपयोगकर्ता को पेज के साथ सीधे इंटरैक्ट करने की अनुमति देता है। 'क्लाइंट का उपयोग करें'; निर्देश Next.js को बताता है कि इस घटक को ब्राउज़र में निष्पादित किया जाना चाहिए।
सर्वर कंपोनेंट्स Next.js आर्किटेक्चर में एक नई सुविधा है। ये घटक सर्वर पर संसाधित होते हैं और पहले से प्रस्तुत HTML को ब्राउज़र पर भेजते हैं। इससे क्लाइंट तक पहुंचने वाली जावास्क्रिप्ट की मात्रा कम हो जाती है, जिससे शुरुआती पेज लोड तेज हो जाता है।
export default async function ServerComponent() { const data = await fetch('https://api.example.com/data').then(res => res.json()); return (); }Data from the Server
{data.message}
इस उदाहरण में, घटक सर्वर पर रेंडर किया जाता है, एक एपीआई से डेटा पुनर्प्राप्त करता है, और फिर रेंडर किए गए HTML को लौटाता है। इसका मतलब है कि डेटा लाने वाला तर्क क्लाइंट तक नहीं पहुंचता है, जिससे प्रदर्शन में सुधार होता है।
Next.js सर्वर और क्लाइंट घटकों के इंटरैक्ट करने के तरीके को परिष्कृत करता है। यहां कुछ सबसे उल्लेखनीय सुधार दिए गए हैं:
घटक अब डिफ़ॉल्ट रूप से सर्वर घटक हैं। इसका मतलब यह है कि आपका एप्लिकेशन ब्राउज़र पर कम जावास्क्रिप्ट भेजकर स्वचालित रूप से अनुकूलित हो जाता है, जब तक कि आपको स्पष्ट रूप से क्लाइंट घटक की आवश्यकता न हो।
स्ट्रीमिंग घटकों को भागों में लोड करने की अनुमति देती है। यह बड़े या डेटा-भारी पृष्ठों के लिए उपयोगी है, क्योंकि पृष्ठ के अनुभाग सभी सामग्री उपलब्ध होने की प्रतीक्षा किए बिना, तैयार होते ही लोड हो सकते हैं।
Next.js यह तय करना आसान बनाता है कि कोई घटक सर्वर पर चलेगा या क्लाइंट पर, जिससे आपको अपने एप्लिकेशन को अनुकूलित करने के तरीके पर अधिक नियंत्रण मिलता है।
हाइड्रेशन वह प्रक्रिया है जो सर्वर से भेजे गए स्थिर HTML को क्लाइंट पर एक इंटरैक्टिव पेज में बदल देती है। Next.js के साथ, जलयोजन अधिक कुशल और चयनात्मक है, केवल वहीं होता है जहां बिल्कुल आवश्यक हो।
// ServerComponent.tsx export default async function ServerComponent() { const data = await fetch('https://api.example.com/products').then(res => res.json()); return (); } // ClientComponent.tsx 'use client'; import { useState } from 'react'; export default function ClientComponent() { const [search, setSearch] = useState(''); return (Product List (Server-rendered)
{data.map((product: any) => (
- {product.name}
))}setSearch(e.target.value)} placeholder="Search product" />); }Searching for: {search}
इस उदाहरण में, सर्वर उत्पादों की सूची प्रस्तुत करता है और क्लाइंट को भेजता है, जबकि खोज घटक इंटरैक्टिव है और क्लाइंट साइड पर प्रबंधित होता है।
नेक्स्ट.जेएस इस बात में एक महत्वपूर्ण मोड़ दर्शाता है कि हम प्रदर्शन और उपयोगकर्ता अनुभव दोनों को अनुकूलित करते हुए वेब एप्लिकेशन कैसे विकसित करते हैं। सर्वर कंपोनेंट्स और क्लाइंट कंपोनेंट्स का कुशल उपयोग आपको हल्के प्रारंभिक लोड के साथ तेज, गतिशील एप्लिकेशन बनाने की अनुमति देता है।
सर्वर कंपोनेंट और क्लाइंट कंपोनेंट के बीच सही ढंग से चयन करना फ्रेमवर्क की क्षमताओं का पूरी तरह से लाभ उठाने के लिए महत्वपूर्ण है। इन नए सुधारों के साथ, सूचित निर्णय लेना और ऐसे एप्लिकेशन बनाना आसान हो गया है जो न केवल तेज़ हैं बल्कि इंटरैक्टिव और स्केलेबल भी हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3