مقدمة إلى 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.