0Pricing
Angular Academy · درس

ما هي Hydration

افهم كيف تعيد Hydration استخدام HTML الذي أنشأه الخادم

ما هي Hydration درس مجاني في Angular Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Angular Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Angular Academy 4 دروس في المجموع.

تعريف الإماهة

الإماهة هي العملية التي يعيد فيها تطبيق Angular من جانب العميل استخدام HTML الذي أنشأه الخادم، مع إرفاق مستمعات الأحداث والحالة بـ DOM الموجود بدلاً من التخلص منه وإعادة عرضه.

الحياة من دون إماهة

استخدم SSR القديم إماهة هدّامة: إذ كان العميل يمسح DOM الخاص بالخادم ويعيد العرض من البداية. تسبب ذلك في وميض مرئي وأهدر عمل الخادم.

الإماهة غير الهدّامة

ينفذ Angular الحديث إماهة غير هدّامة: إذ يتنقل عبر DOM الموجود، ويطابقه مع شجرة المكوّنات، ويعيد استخدام العقد. لا وميض، وعمل أقل، وأداء أفضل.

سبب تحسينها للمؤشرات

يعني إعادة استخدام HTML الخاص بالخادم بقاء أكبر محتوى معروضاً، مما يساعد LCP، كما تتجنب تغيرات التخطيط الناتجة عن إعادة العرض، مما يساعد CLS. ويصبح التطبيق تفاعلياً من دون إعادة الرسم.

الصورة ذات المرحلتين

المرحلة الأولى: يعرض الخادم HTML ويرسله. المرحلة الثانية: ينزّل المتصفح JavaScript، ويبدأ Angular، ويُجري إماهة للترميز الموجود كي يصبح تفاعلياً.

مطابقة بنية DOM

تفترض الإماهة أن شجرة مكوّنات العميل تنتج البنية نفسها التي أنتجها الخادم. وإذا اختلفتا، يُبلغ Angular عن عدم تطابق في الإماهة.

// NG0500: During hydration Angular expected <div> but found <span>

أسباب عدم التطابق الشائعة

تسبب معالجة DOM مباشرة، وفروعاً خاصة بالمتصفح تغيّر الترميز، وتداخل HTML غير صالح، ومحتوى غير حتمي (مثل Math.random() أو Date.now() في القوالب) حالات عدم التطابق.

تجنب تعديلات DOM اليدوية

لا تعالج DOM بطريقة إجرائية (باستخدام innerHTML خارج Angular مثلاً) أثناء SSR. دع Angular يتولى DOM كي يتفق العميل والخادم.

حل الاستثناء ngSkipHydration

بالنسبة إلى مكوّن لا يمكن إماهته فعلاً (مثل عنصر واجهة من جهة خارجية يغيّر DOM)، عطّل الإماهة له باستخدام ngSkipHydration؛ وسيعيد Angular عرض ذلك الفرع الفرعي فقط.

<app-legacy-widget ngSkipHydration></app-legacy-widget>

الترطيب يحتاج إلى SSR

ينطبق الترطيب فقط عند وجود HTML مُولَّد على الخادم لإعادة استخدامه. لا تملك تطبيقات CSR الخالصة شيئًا لترطيبه؛ فالترطيب هو الجانب الخاص بالعميل من قصة SSR.

ما الذي يأتي بعد ذلك

يمكن أن يكون الترطيب كاملًا (يُرطَّب التطبيق بأكمله عند التحميل) أو تدريجيًا (تُرطَّب الأجزاء عند الطلب). ويُعد اختيار الاستراتيجية المناسبة أمرًا أساسيًا للأداء، وسنتناوله في دروس لاحقة.

تحقق سريع

تحقق من فهمك للترطيب.

مراجعة

يعيد الترطيب استخدام HTML الذي أنشأه الخادم على العميل بطريقة غير هدّامة، مما يحسّن LCP وCLS. تنشأ حالات عدم التطابق بسبب تعديلات DOM اليدوية أو الترميز غير الحتمي؛ استخدم ngSkipHydration كحل استثنائي. الترطيب هو الجانب الخاص بالعميل من SSR.

الأسئلة الشائعة

هل درس «ما هي Hydration» مجاني؟

نعم — نص درس «ما هي Hydration» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Angular Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Angular Academy 4 دروس في المجموع.

ماذا ستتعلم في «ما هي Hydration»؟

افهم كيف تعيد Hydration استخدام HTML الذي أنشأه الخادم تتمرن على Angular Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Angular Academy؟

لا تُشترط خبرة سابقة. Angular Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ما هي Hydration»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Angular Academy هذا؟

نعم. كل درس في Angular Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما هي Hydration
  2. تمكين Hydration الكامل
  3. Hydration التدريجي باستخدام @defer
  4. قياس مؤشرات الويب الأساسية
← العودة إلى Angular Academy