في هذا الإصدار من Next.js، سوف نستكشف ماهية مكونات العميل والخادم، والاختلافات بينهما، ومتى يتم استخدام كل منهما، ونقدم أمثلة عملية لمساعدتك في تنفيذها في مشروعك. المشاريع.
في Next.js، هناك تمييز واضح بين مكونات العميل ومكونات الخادم. يتيح لك هذا الفصل اتخاذ قرارات أفضل حول مكان وكيفية معالجة التعليمات البرمجية، مما يؤثر بشكل مباشر على الأداء وتجربة المستخدم.
مكونات العميل في المتصفح، مما يسمح بالتفاعل والوصول إلى واجهات برمجة تطبيقات المتصفح مثل النافذة أو المستند. إنها مثالية لإدارة الواجهة الديناميكية لتطبيقك والاستجابة لإجراءات المستخدم.
'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 المعروض بالفعل إلى المتصفح. يؤدي هذا إلى تقليل كمية JavaScript التي تصل إلى العميل، مما يؤدي إلى تسريع التحميل الأولي للصفحة.
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}
في هذا المثال، يتم عرض المكون على الخادم، واسترداد البيانات من واجهة برمجة التطبيقات (API)، ثم إرجاع HTML المعروض. وهذا يعني أن منطق جلب البيانات لا يصل إلى العميل، مما يؤدي إلى تحسين الأداء.
يقوم Next.js بتحسين كيفية تفاعل مكونات الخادم والعميل. فيما يلي بعض أبرز التحسينات:
المكونات الآن هي مكونات الخادم بشكل افتراضي. وهذا يعني أن تطبيقك يتم تحسينه تلقائيًا عن طريق إرسال كمية أقل من JavaScript إلى المتصفح، ما لم تكن بحاجة صريحة إلى مكون العميل.
يسمح الدفق بتحميل المكونات في أجزاء. يعد هذا مفيدًا للصفحات الكبيرة أو ذات البيانات الكبيرة، حيث يمكن تحميل أقسام الصفحة عندما تصبح جاهزة، دون انتظار توفر كل المحتوى.
يسهل 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}
في هذا المثال، يعرض الخادم قائمة المنتجات ويرسلها إلى العميل، بينما يكون مكون البحث تفاعليًا ويتم إدارته من جانب العميل.
يمثل Next.js نقطة تحول في كيفية تطوير تطبيقات الويب، وتحسين الأداء وتجربة المستخدم. يتيح لك الاستخدام الفعال لـ مكونات الخادم ومكونات العميل إنشاء تطبيقات سريعة وديناميكية مع تحميل أولي أخف.
يعد الاختيار الصحيح بين مكون الخادم ومكون العميل أمرًا بالغ الأهمية للاستفادة الكاملة من إمكانات إطار العمل. بفضل هذه التحسينات الجديدة، أصبح من الأسهل اتخاذ قرارات مستنيرة وإنشاء تطبيقات ليست سريعة فحسب، بل أيضًا تفاعلية وقابلة للتطوير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3