شو الجديد في Livewire v3 مقارنة بـ v2؟
الLivewire، اللي بنستخدمها لعمل تطبيقات تفاعلية في Laravel بدون الحاجة لاستخدام JavaScript بشكل كبير، أجت بـ الإصدار الثالث مع تحسينات كبيرة وتغييرات بتسهل الشغل أكتر من قبل. هون راح نحكي عن أهم الميزات الجديدة والاختلافات اللي بين Livewire v3 و Livewire v2.
1. أداء أسرع وتنقل سلس (wire:navigate)
في Livewire v3، قدموا خاصية جديدة اسمها wire:navigate
. هالخاصية بتحسن التنقل بين الصفحات بشكل ملحوظ وبتخلي الصفحة تتغير بدون ما تعمل "reload" كامل للصفحة. الفكرة هون إنه المستخدم ما رح يحس إنه الصفحة بتتحدث بالكامل، وكل إشي بتغير بسلاسة وبدون ما نرجع لـ jQuery أو مكتبات تانية زي Turbolinks.هاي الخاصية كانت مفقودة في v2، والآن بإمكانك تستخدمها لتنقل المستخدم بين صفحات التطبيق بدون أي تعطيل.
2. التخلي عن emit في الأحداث الداخلية
في Livewire v2، كنا نستخدم emit
عشان نرسل أحداث بين المكونات (components) المختلفة. هالطريقة كانت شغالة، بس في v3 غيروا هالأسلوب لتسهيل التواصل بين المكونات باستخدام dispatch
بدل emit
.الميزة هون إنه صار فيه كفاءة أكتر في إدارة الأحداث وبتقدر ترسل بيانات بين المكونات بطريقة أوضح وأسهل.
3. إزالة الـ entangle
والاستعاضة عنها بـ wire:model
في الإصدار القديم v2، كنا نستخدم entangle
لربط البيانات بين الـ Livewire والـ Alpine.js. بس في v3 صار الربط هادا أسهل باستخدام wire:model
مباشرة مع Alpine.js. يعني بدون ما نرجع نعمل entangle
ونربط بشكل يدوي، صار ممكن نتعامل مع البيانات بسلاسة أكتر.
4. تحسين إدارة الحالة (State Management)
الLivewire v3 جابت تحسينات كبيرة في إدارة الحالة داخل المكونات. يعني لو كنت بتشتغل على مشروع معقد وفيه أكتر من مكون (component) وكل مكون بيحتاج يدير حالته بشكل مستقل، هالإصدار جاب تحسينات تخلي إدارة الحالة أكتر فعالية. في v2 كانت الأمور لسة مش دايماً سلسة لما يتعلق الموضوع بمكونات معقدة.
5. تحسينات في التعامل مع الفرمات (Forms Handling)
في v3، التعامل مع الفرمات صار أكتر ذكاءً وأكتر مرونة. مثلاً، بقدر أتحكم في الفاليديشن والتحديثات بشكل أكتر سلاسة مقارنة بالإصدار الثاني. لو كنت بتشتغل على فرمات كبيرة وتفاعلية، راح تلاحظ إنه v3 صار أسرع وأسهل في التعامل مع هالسيناريوهات.
6. التخلص من hydrate
وdehydrate
في الإصدار الثاني v2، كنا نستخدم مصطلحات زي hydrate
و dehydrate
عشان نفهم كيف Livewire بيحمل البيانات ويعملها processing عند الانتقال من وإلى السيرفر. في v3، هالمصطلحات انشالت، وصار كل إشي بيشتغل بسلاسة بدون الحاجة نفكر في التفاصيل الدقيقة كيف البيانات بتنقل.
7. دعم أكتر لـ JavaScript
في Livewire v3، صار فيه توافق أحسن مع JavaScript libraries والـ components. يعني لو عندك مكتبة خارجية أو بتشتغل مع مكتبات زي Alpine.js أو حتى Vue.js، صار التوافق أحسن بكتير وبتقدر تربط بين Livewire وجافا سكريبت بدون أي مشاكل.
8. تحسين التعامل مع التحقق (Validation)
التحقق في Livewire كان دايماً قوي، بس في v3 صار أكتر مرونة وكفاءة. يعني صار ممكن تستخدم الفاليديشن بشكل أسرع وبدون ما تحتاج تعمل إعادة تحميل كاملة للصفحة أو المكون.
الخلاصة
الLivewire v3 جاب تغييرات جوهرية بتحسن الأداء وتسهّل الشغل على المطورين مقارنة بـ v2. أهم الأشياء اللي تغيرت كانت سرعة التنقل باستخدام wire:navigate
، تحسين التواصل بين المكونات باستخدام dispatch
بدل emit
، وتحسينات كبيرة في التعامل مع الفرمات وإدارة الحالة. لو كنت شغال على v2، الترقية لـ v3 بتستحق عشان الميزات الجديدة رح تسهل عليك الشغل وتوفر وقت.
#GTC_rowad_batch1
#GTC_rowad_MohammedAbohasaballah_batch1