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