التحويل إلى Astro من Next.js

الهندسة

إذا كنت متورطًا بشكل كبير في مجتمع React، فقد تكون على دراية بإطار عمل يُستخدم لبناء تطبيقات ويب ثابتة وعلى جانب الخادم. يقدم العديد من المزايا، مثل تحويل تطبيق عميل JavaScript React إلى تطبيق على مستوى الخادم يبني الـHTML/المحتوى للمستخدم. بمعنى آخر، الكود مُرسل وجاهز للاستخدام، مما يلغي الحاجة للمستخدم لتنفيذ كود على جانب العميل لتشكيل البيانات أو هيكلة الـHTML.

من ملفات HTML، CSS، Javascript المُنشأة مسبقًا، وملفات أخرى تنتقل إلى خادم ويب يمكن أن يُلبي طلبات المتصفح.
مثال على كيفية نقل الكود إلى خادم بحيث يمكنه نقل الملفات المطلوبة إلى المتصفح. ( صورة MDN )

نظرة أولية على إطار عمل آخر؟

في البداية، أثناء استكشافي لهذا المشروع بعد رحلتي عبر عالم أدوات JavaScript المتسارع، لفت Astro انتباهي بأنه مشابه جدًا لـNext.js من حيث توفيره لتوليد المواقع الثابتة (SSG). هذه ميزة كبيرة، لأنها تؤدي إلى تحسين الأداء والمزيد. ومع ذلك، الفرق الرئيسي بين الاثنين هو أن Astro لا يهتم باللغة التي تستخدمها. بدلاً من ذلك، هو أداة تركز فقط على بناء كل الـHTML الذي يمكن توليده على الخادم أثناء خطوة البناء. نتيجة لذلك، يتم القضاء على أي JavaScript غير مستخدم على الـHTML الذي تم تنفيذه على الخادم.

ألا يقوم Next.js بهذا أيضًا؟

حسنًا، نعم ولا. يتعامل Next.js مع هذا، لكن على حساب JavaScript إضافي وحزم تتنفذ على الصفحة. هذه تُرطب المحتوى من الخادم، مما يسمح له بالبقاء تفاعليًا مع JavaScript المطلوب على جانب العميل (مثل الحركات والأحداث). تُرسل الصفحة مع كود إضافي يمكّن هذه الوظيفة، بغض النظر عن التفاعلية، مما يجعل الحمل أكبر. بالمقارنة، مع Astro، يتم فقط شحن JavaScript المطلوب الضروري لجعل الصفحة تفاعلية والكود لتشغيل التطبيق، بدون ارتباط بمكتبة أو لغة معينة. في موقع ويب SPA أساسي، يستغرق Next.js حوالي 704 مللي ثانية للتحميل، في حين يستغرق Astro فقط 107 مللي ثانية.

Next.js يستغرق 16 طلب ويحمل موقع ويب أساسي في 704 مللي ثانية بينما Astro يؤدي 7 طلبات ويستغرق 107 مللي ثانية.
مثال جنبًا إلى جنب مع Next.js على اليسار وAstro على اليمين.
موقع جيف منديز الشخصي يتميز بثلاثة عناصر تنقل، صورة لجيف منديز يصطاد، ومقدمة. مرحبًا، اسمي جيف منديز، وأنا مهندس برمجيات ومؤسس A11yWatch, مجموعة تحسين إمكانية الوصول إلى الويب. تفضل بزيارة A11yWatch لتعزيز إدراج موقعك الويب واستخدم فاحص إمكانية الوصول إلى الموقع مجانًا. إليك رابط Github لكودي الشخصي.
مثال على موقع ويب تم اختباره.

نحو المستقبل!

نحن متحمسون جدًا لـ Astro ونتطلع إلى نقل بعض محتوانا إليه. تابعونا بينما ننشر المزيد من المحتوى حول الأداة الجديدة التي يمكن أن تساعد المطورين على الحفاظ على إنتاجيتهم وأيضًا شحن حزم صغيرة. يمكن العثور على هجرة المثال هنا لإعطاء فكرة عن الجهد الذي قد يتطلبه نقل صفحة بسيطة. استغرق الأمر حوالي 20 دقيقة من القراءة الأولية للوثائق لنقل التطبيق بأكمله. يمكن سحب موقع الويب لتحويل Next.js إلى Astro لاستخدامه مع توفير إعداد TypeScript.

جيف منديز

اسمي جيف وأستمتع ببناء الأشياء والصيد في أوقات فراغي.

منشور ذو صلة

ظل شاملًا بثقة

ابدأ مع A11yWatch الآن بأسعار معقولة وأدوات تشغيل آلي سريعة لقابلية الويب للوصول.