التحويل إلى Astro من Next.js
الهندسةإذا كنت متورطًا بشكل كبير في مجتمع React، فقد تكون على دراية بإطار عمل يُستخدم لبناء تطبيقات ويب ثابتة وعلى جانب الخادم. يقدم العديد من المزايا، مثل تحويل تطبيق عميل JavaScript React إلى تطبيق على مستوى الخادم يبني الـHTML/المحتوى للمستخدم. بمعنى آخر، الكود مُرسل وجاهز للاستخدام، مما يلغي الحاجة للمستخدم لتنفيذ كود على جانب العميل لتشكيل البيانات أو هيكلة الـHTML.
نظرة أولية على إطار عمل آخر؟
في البداية، أثناء استكشافي لهذا المشروع بعد رحلتي عبر عالم أدوات JavaScript المتسارع، لفت Astro انتباهي بأنه مشابه جدًا لـNext.js من حيث توفيره لتوليد المواقع الثابتة (SSG). هذه ميزة كبيرة، لأنها تؤدي إلى تحسين الأداء والمزيد. ومع ذلك، الفرق الرئيسي بين الاثنين هو أن Astro لا يهتم باللغة التي تستخدمها. بدلاً من ذلك، هو أداة تركز فقط على بناء كل الـHTML الذي يمكن توليده على الخادم أثناء خطوة البناء. نتيجة لذلك، يتم القضاء على أي JavaScript غير مستخدم على الـHTML الذي تم تنفيذه على الخادم.
ألا يقوم Next.js بهذا أيضًا؟
حسنًا، نعم ولا. يتعامل Next.js مع هذا، لكن على حساب JavaScript إضافي وحزم تتنفذ على الصفحة. هذه تُرطب المحتوى من الخادم، مما يسمح له بالبقاء تفاعليًا مع JavaScript المطلوب على جانب العميل (مثل الحركات والأحداث). تُرسل الصفحة مع كود إضافي يمكّن هذه الوظيفة، بغض النظر عن التفاعلية، مما يجعل الحمل أكبر. بالمقارنة، مع Astro، يتم فقط شحن JavaScript المطلوب الضروري لجعل الصفحة تفاعلية والكود لتشغيل التطبيق، بدون ارتباط بمكتبة أو لغة معينة. في موقع ويب SPA أساسي، يستغرق Next.js حوالي 704 مللي ثانية للتحميل، في حين يستغرق Astro فقط 107 مللي ثانية.
نحو المستقبل!
نحن متحمسون جدًا لـ Astro ونتطلع إلى نقل بعض محتوانا إليه. تابعونا بينما ننشر المزيد من المحتوى حول الأداة الجديدة التي يمكن أن تساعد المطورين على الحفاظ على إنتاجيتهم وأيضًا شحن حزم صغيرة. يمكن العثور على هجرة المثال هنا لإعطاء فكرة عن الجهد الذي قد يتطلبه نقل صفحة بسيطة. استغرق الأمر حوالي 20 دقيقة من القراءة الأولية للوثائق لنقل التطبيق بأكمله. يمكن سحب موقع الويب لتحويل Next.js إلى Astro لاستخدامه مع توفير إعداد TypeScript.
منشور ذو صلة
ظل شاملًا بثقة
ابدأ مع A11yWatch الآن بأسعار معقولة وأدوات تشغيل آلي سريعة لقابلية الويب للوصول.