مقدمة إلى Alpine.js لتطوير الواجهات الأمامية


Alpine.js هي مكتبة JavaScript خفيفة موجهة لتطوير واجهات المستخدم التفاعلية، وتُعد بديلاً بسيطًا وخفيفًا لإطارات مثل Vue و React في المشاريع الصغيرة أو المتوسطة. تعتمد على كتابة التعليمات التفاعلية مباشرة داخل HTML باستخدام خصائص مخصصة x-*، مما يجعلها مشابهة في الفكرة لـ jQuery ولكن بأسلوب حديث ومُنظم.

المزايا الرئيسية لـ Alpine.js

  • خفيف الوزن (حجمه ~7KB فقط).

  • لا حاجة إلى حزمة بناء (Build Process)، يعمل مباشرة في المتصفح.

  • تركيبة سهلة تشبه Vue (مثل x-data، x-show). -تحميل سريع جدًا ولا يؤثر على الأداء العام للصفحة

  • مثالي للمشاريع الصغيرة أو إضافة تفاعلات سريعة دون تعقيد.

  • مناسبة للمكونات التفاعلية الصغيرة مثل القوائم المنسدلة، النماذج، التبديل بين العناصر، إلخ.

حالات الاستخدام الشائعة

  • إضافة قوائم dropdowns أو modals سريعة.
  • إنشاء نماذج (forms) تفاعلية دون تعقيد.
  • تحديث المحتوى ديناميكيًا دون إعادة تحميل الصفحة.
  • إذا كنت تستخدم HTML وTailwind CSS وتحتاج إلى تفاعلية سريعة.

الأوامر الرئيسية

الخاصية الاستخدام مثال
`x-data`تعريف البيانات`<div x-data="{ count: 0 }">`
`x-bind`ربط البيانات بخصائص HTML`<img x-bind:src="imageUrl">`
`x-on`التعامل مع الأحداث`<button x-on:click="count++">`
`x-show` / `x-if`إظهار/إخفاء العناصر`<p x-show="isVisible">`
`x-model`ربط القيمة مع عنصر الإدخال`<input x-model="name">`

كيف تعمل Alpine.js؟

عند تضمين Alpine في صفحتك، تقوم المكتبة بتحليل تعليمات x-* داخل عناصر HTML وتقوم بتحديث DOM تلقائيًا عند تغيير البيانات، دون الحاجة لإعادة تحميل الصفحة أو إنشاء مكونات معقدة.

<div x-data="{ open: false }">
  <button @click="open = !open">إظهار/إخفاء</button>
  <p x-show="open">مرحبًا بك في Alpine.js</p>
</div>

التثبيت

💻 مثال تفاعلي

    
      
<div x-data="{ isOpen: false }">
<button 
  @click="isOpen = !isOpen"
  class="dropdown-btn"
>
  القائمة المنسدلة
</button>

<div 
  x-show="isOpen"
  class="dropdown-menu"
>
  {/*
      المحتوى هنا
  */}
</div>
</div>
    
  

جرب هذا المثال على CodePen.

🔗 روابط مفيدة

التصنيفات: تطوير الويب