sh
php artisan make:livewire ModalComponent
ModalComponent.php
namespace App\Http\Livewire;
use Livewire\Component;
class ModalComponent extends Component
{
public $showModal = false;
public function openModal()
{
$this->showModal = true;
}
public function closeModal()
{
$this->showModal = false;
}
public function render()
{
return view('livewire.modal-component');
}
}
modal-component.blade.php
<div>
<!-- Buton -->
<button @click="showModal = true" class="px-4 py-2 bg-blue-600 text-white">Modal Aç</button>
<!-- Modal -->
<div x-data="{ showModal: @entangle('showModal') }" x-show="showModal" class="fixed inset-0 flex items-center justify-center bg-gray-900 bg-opacity-50">
<div class="bg-white p-6 rounded-lg shadow-lg">
<h2 class="text-lg font-bold">Alpine.js ve Livewire Modal</h2>
<p>Bu, Livewire ve Alpine.js ile oluşturulmuş bir modal penceredir.</p>
<button @click="showModal = false" class="mt-4 px-4 py-2 bg-red-500 text-white">Kapat</button>
</div>
</div>
</div>
html
@livewire('modal-component')
✅ Livewire sayesinde sunucu tarafında veri yönetimi yapabilirsin.
✅ Alpine.js, Livewire'ın AJAX isteklerini tetiklemeden ön yüz işlemlerini yapar.
✅ Sayfa yenilemeye gerek kalmadan dinamik bileşenler oluşturabilirsin.