71 Matching Annotations
  1. Last 7 days
    1. Properties defined in an x-data directive are available to all element children. Even ones inside other, nested x-data components.

      جميع البيانات يتم توريثها للابناء

    1. When the $refresh action is triggered, Livewire will make a server-roundtrip and re-render your component without calling any methods.

      بتعي بناء الواجهة

    2. refresh

      أي تغييرات محليّة (مثل wire:model المؤجَّلة) تُطبّق على السيرفر أولًا ثم يُعاد الرندر.

      لن يُستدعى mount() مرة أخرى. لكنه سيعيد تنفيذ ما في render() وأي خواص محسوبة/استعلامات داخلها.

      لا يجري validate() ولا أي منطق إضافي إلا إذا كتبته أنت.

    1. <button x-on:click="$wire.todo = ''">Clear</button>

      هذا يغيّر القيمة في المتصفح فقط (state المحليّة).

      لا يرسل طلب للسيرفر الآن.

      عند أول جولة لاحقة (أي اكشن Livewire أو submit…)، Livewire يزامن القيمة الجديدة مع السيرفر.

      المفيد: تفاعل لحظي بدون شبكة.

    2. Todo character length: <h2 x-text="$wire.todo.length"></h2>

      الحقل مربوط بـ wire:model="todo"، فـ Livewire يبقي قيمة todo محدثة محليًا في المتصفح.

      عندما تكتب، تتغيّر $wire.todo فورًا في المتصفح؛ لذلك x-text="$wire.todo.length" تظهر الطول مباشرة بدون أي request.

    3. Livewire exposes a magic $wire object to Alpine. You can access the $wire object from any Alpine expression inside your Livewire component.

      داخل أي مكوّن Livewire، عندك كائن سحري اسمه $wire متاح في Alpine.

      $wire هو “نسخة جافاسكربت” من المكوّن: فيه نفس الخصائص والميثودز، لكن القراءة منه لا تُرسل طلبًا للسيرفر.

    4. Array, String, Integer, Float, Boolean, and Null.

      اول اشي livewire بحول القيم الي json قبل ارسالها في request وبعد وصولها الي class يحولها الي قيم صريحة التي حددناها و هذه القيم محدودة لان json لا يستطيع حمل كل انواع البيانات

    5. $this->todos[] = $this->pull('todo');

      بهاي الدالة يمكننا اخذ القيمة و بعد اخدها حذفها ونمرر لها نص باسم المتغير الذي نريد قيمته و يتعرف livewire تلقائي علييه وجب ان يكون معرف و public

    6. wire:model

      نقوم باضافة هذه التاق علي field الذي سوف يحتوي علي البيانات وسوف يقوم بنقل البيانات عند حدوث عملية submit or save وتنتقل البيانات الي الميثود المربوطة به

    1. Setting additional layout file slots

      اذا مثلا بدي اعمل @yield('style') بستخدم هاي الطريقة اول اشي لازم اني اعرف في layout ->. {{$style ?? ''}} بعدها لازم اني اروح علي component واضيف

      <x-slot:syle>css<x-slost/>

    2. #[Layout]

      اذا بدي component معينة اعرضها في layout مختلف بضيف هاي فوق render

      استخدم Attribute لما يكون الياوت ثابت وما تحتاج تمرير بيانات متغيّرة

    3. mount()

      أي قيمة تمرّرها في وسم المكوّن تُحقن في mount() كـ بارامترات: يعني البيانات بتنتقل نم باراميتر من ثم الي mount من ثم بتقدر تضيف عليها اي تعديلات ثم بتتخزن داخل public value

    4. There are two ways to render a Livewire component on a page:

      يمكن استدعاء component بطريقتين ١-من خلال استدعائها داخل صفحة ٢-من خلال جعلها صفحة كامل

    5. public function save()

      يتم تشغيل هاي الفنقشن ك event مثلا في الفورم wire:submit="save" في هاي الحالة يتم تشغيل الفنقشن save

    6. "Why isn't my component live updating as I type?" .prose .lw-tip pre:last-child { margin-bottom: 0px; }

      إذا كتبت في الحقل وما شفت القيمة تتحدّث فورًا في الواجهة، هذا طبيعي في Livewire (v4).

      Livewire صار يحدّث المكوّن فقط عند حدوث “Action” (زي ضغط زر submit أو wire:click) — مش مع كل ضغطة زر أثناء الكتابة.

      الهدف: تقليل عدد الطلبات للسيرفر وتحسين الأداء.

      لو بدك تحديث لحظي وأنت بتكتب، استخدم wire:model.live بدل wire:model.

    7. Binding inputs to properties

      تربط الحقل بالخاصية $title لكن في v4 لا يُرسل التحديث للسيرفر أثناء الكتابة.

      Livewire يؤجّل الإرسال لغاية ما يصير Action (زي wire:click, submit …). هذا لتقليل الطلبات وتحسين الأداء.

    8. wire:model="title"

      تربط الحقل بالخاصية $title لكن في v4 لا يُرسل التحديث للسيرفر أثناء الكتابة.

      Livewire يؤجّل الإرسال لغاية ما يصير Action (زي wire:click, submit …). هذا لتقليل الطلبات وتحسين الأداء.

    9. :key="$post->id"

      هاي ضرورية لما بدك تعمل loop وداخلو بدك تدخل Component لازم تضيف هاي الخاصية عشان livewire تقدر تطابق البيانات مع بعض

    10. :$post

      اختصار ل 'post' => $post

      وهو تمرير بيانات ل كمبوننت يمكن استلام البيانات استلام البيانات اما من خلال mount($post) or public Post $post;

    11. Adding wire:key to @foreach loops

      مهمة جدا اي بيانات بدك تعمل عليها loop لازم توضعها داخل root وتعطي الخاصية wire:key='' ولازم يكون فريد عشان ال livewire يطابق العناصرمع بعض

    12. with()

      تستخدم لتمرير البيانات الي الواجهة لانو احيانا public مش مناسبة لجميع السيناريوهات لانها بتخضع ل حماية و تعامل مختلف فيمكنك استخدام with

    13. Livewire components have properties that store data and can be easily accessed within the component's class and Blade view. This section discusses the basics of adding a property to a component and using it in your application.

      يتكم الجزء اني بقدر اعمل متغيرات داخل Class تكون public واستدعيها في blade مثل ما يوضح في الصورة

    14. Customizing component stubs

      لما تعمل صفحة جديدة بكون في ملفات افتراضية يتم انشائها اذا بدي اخصص الملف اول ما اعملو شو يكون داخلو بنفذ الكوماند المرفق وبعدل ببساطة الملفات الافتراضية لانشاء الملفات

    15. Omitting the render method

      اذا حذفت render function تلقائيا livewire رح تبحث علي اول view يتطابق اسمه مع اسم Control وتبعثو للواجهة

    16. php artisan make:livewire CreatePost --inline

      لما تعمل Component بضمن html داخل نفس Class يعني بنشاء ملف واحد في App/Livewire وما بعمل ملف داخل view

    17. ->layout()

      نستطيع من خلالها تحديد اي layout نريد تمرير البيانات له

      return view('livewire.posts.index') ->layout('components.layouts.app', ['title' => 'Latest Posts']); // تمُرِّر بيانات للّياوت أيضًا

    18. php artisan make:livewire CreatePost

      كوماند مخصص لانشاء Component ينتج عن تنفيد هذا الكوماند ملفين

      CLASS: app/Livewire/Counter.php المنطق VIEW: resources/views/livewire/counter.blade.php الواجهة

    1. wire:navigate

      **يمنع اعادة التحميل الكاملة للصفحة يجلب الصفحة من خلال ajax بيبدل المحتوى القديم بالجديد بشكل يشبه Single Page Application **