العودة
إصدار htmx 4.0.0 بعد ثمانية أشهر من العمل
SiTech AI Team3 წთ. საკითხავი

إصدار htmx 4.0.0 بعد ثمانية أشهر من العمل

أعلن فريق htmx إصدار النسخة 4.0.0: انتقلت البنية الداخلية من XMLHttpRequest إلى fetch()، وصارت وراثة السمات صريحة، ووُحّدت أسماء الأحداث، وأُضيفت استبدالات morph.

أصدر فريق htmx في 28 أغسطس/آب الإصدار 4.0.0، وهو حصيلة ثمانية أشهر من العمل بحسب إعلان الإصدار. وhtmx مكتبة تتيح بناء واجهات تفاعلية عبر توسيع سمات HTML بدل كتابة كميات كبيرة من JavaScript، والإصدار 4.0 هو أول إصدار رئيسي في الخط الجديد.

كيف بدأت إعادة الكتابة

يقول المؤلف إنّ فكرة htmx 4 ظهرت أثناء إنشائه مكتبة منفصلة باسم fixi وتعرّفه عن قرب على واجهة fetch() والبرمجة غير المتزامنة في JavaScript. وقد اعتمد htmx دائمًا على XMLHttpRequest لأسباب تتعلق بالتوافق الخلفي. وأقنعه نقاش حول بثّ HTML بأنّ نقل البنية الداخلية إلى fetch() سيبسّط المكتبة، فانضم مايكل وأليكس إلى العمل الذي بدأ بنقل fixi ومجموعة اختبارات htmx.

التغييرات الثلاثة الرئيسية

من منظور المستخدم، الإصدار 4 قريب جدًا من الإصدار 2، لكن ثلاثة أمور تتغيّر. أولًا، أصبح وراثة السمات صريحة لا ضمنية: لنقل سمة من عنصر أب إلى أبنائه تُضاف اللاحقة :inherited، وتوجد أداة سطر أوامر — npx [email protected] upgrade-check — لتحديد المواضع التي تحتاج ذلك.

ثانيًا، وُحّدت أسماء الأحداث وفق النمط htmx:phase:action، فأصبح htmx:beforeRequest هو htmx:before:request. وتُدمج معظم أحداث الخطأ في htmx:error، وتُطلق استجابات أخطاء HTTP الحدث htmx:response:error، بينما أُزيلت عائلتا htmx:xhr:* وhtmx:validation:* لصالح التحقق الأصلي للنماذج في المتصفح.

ثالثًا، لم يعد دعم السجل يخزّن الصفحات في localStorage افتراضيًا. عند الرجوع يعيد htmx جلب الصفحة ويضعها في body أو في عنصر [hx-history-elt] إن وُجد. ويعالج التغيير مشكلة قديمة كانت تُستعاد فيها تغييرات DOM التي أجرتها سكربتات خارجية دون منطق JavaScript الذي يقف خلفها. ومن يريد تخزينًا محليًا يمكنه إضافة امتداد hx-history-cache الذي يعمل على sessionStorage.

ميزات وامتدادات جديدة

يوفّر الإصدار 4 استبدالات morph جاهزة تستند إلى خوارزمية idiomorph، ووسمًا جديدًا هو أوضح من الاستبدالات خارج النطاق عندما يتجاوز الهدف استبدال عنصر واحد بنسخة جديدة منه. وقد أتاح الانتقال إلى fetch() إعادة تصور نظام الامتدادات: فظهرت hx-preload وhx-download وhx-alpine-compat وhx-history-cache، وجُدّدت امتدادات البثّ hx-sse وhx-ws وhx-multipart. وأُضيف أيضًا hx-live، وهو حل صغير للبرمجة في الواجهة، وحزمة htmax.js التي تجمع htmx مع أشهر الامتدادات في ملف واحد.

التوافر والدعم

يمكن تثبيت htmx 4.0.0 من مدير الحزم أو تحميله من شبكة CDN. ولم يضع المشروع الإصدار 4.0 عمدًا تحت وسم «latest» في npm، حتى لا يُجبر من يعتمدون على روابط CDN بلا رقم إصدار على الترقية: يبقى 2.x هو «latest» ويظل خط 4.0 على وسم «next» حتى مطلع عام 2027، رغم أن الموقع يوثّق الإصدار 4.0. وسيستمر دعم htmx 2 بلا أجل محدد، كما نشر الفريق ملفات skill لمساعدات كتابة الشيفرة بالذكاء الاصطناعي تغطي التطوير بـ htmx 4 وتصحيح الأخطاء وكتابة الامتدادات والانتقال من 2.x.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.