class Laravel Blade Components extends Post

@created_at( "2025-01-15 13:38" ) @tag( "laravel" ) @tag( "blade" ) @tag( "components" )
### Laravel Blade Components, Blade şablon motorunda tekrar kullanılabilir UI (kullanıcı arayüzü) parçaları oluşturmayı kolaylaştıran bir özelliktir. Bu özellik, kodunuzu daha temiz, daha modüler ve yeniden kullanılabilir hale getirir. ### Blade Components Avantajları - **Kod Tekrarını Azaltır:** Tek bir yerde oluşturduğunuz bir bileşeni, projede istediğiniz her yerde tekrar tekrar kullanabilirsiniz. - **Okunabilirliği Artırır:** Karmaşık Blade dosyalarını küçük, modüler bileşenlere ayırarak daha okunabilir hale getirebilirsiniz. - **Test Edilebilirlik Sağlar:** Her bileşen kendi bağımsız biriminde test edilebilir hale gelir. ### Blade Components Nasıl Oluşturulur? 1. **Component Oluşturma:**
php artisan make:component ComponentAdi
Örneğin:
php artisan make:component Alert
Bu komut, `app/View/Components` dizininde bir sınıf ve `resources/views/components` dizininde bir Blade görünüm dosyası oluşturur. 2. **Component Yapısı:** - **Sınıf:** `app/View/Components/Alert.php` - **View:** `resources/views/components/alert.blade.php` 3. **Component Sınıfını Düzenleme:** Sınıf içerisine gerekli verileri tanımlayabilirsiniz:
namespace App\View\Components;

   use Illuminate\View\Component;

   class Alert extends Component
   {
       public $type;
       public $message;

       public function __construct($type, $message)
       {
           $this->type = $type;
           $this->message = $message;
       }

       public function render()
       {
           return view('components.alert');
       }
   }
4. **Blade Dosyasını Düzenleme:** `alert.blade.php` dosyasına, bileşenin HTML yapısını yazabilirsiniz:
<div class="alert alert-{{ $type }}">
       {{ $message }}
   </div>
5. **Component Kullanımı:** Bileşeni Blade dosyanızda şu şekilde çağırabilirsiniz:
<x-alert type="success" message="Bu bir başarı mesajıdır!" />
6. **Slot Kullanımı:** Eğer içerik dinamik olacaksa, slot kullanabilirsiniz: - **View Dosyası:**
<div class="alert alert-{{ $type }}">
         {{ $slot }}
     </div>
- **Component Kullanımı:**
<x-alert type="danger">
         Bu bir hata mesajıdır!
     </x-alert>
### Ek Özellikler - **Global Components:** `php artisan make:component` ile oluşturulan bileşenler otomatik olarak global hale gelir. Bu, onları her yerden kullanabileceğiniz anlamına gelir. - **Anonymous Components:** Adını belirtmek zorunda kalmadan sadece view dosyaları ile bileşenler oluşturabilirsiniz. Bu, dosya adının bileşen adı olarak kullanıldığı bir yöntemdir.
resources/views/components/button.blade.php
Çağrılırken:
<x-button />
### Özet Blade Components, Laravel projelerinizde daha modüler ve temiz bir yapıya ulaşmanızı sağlar. Hem kod tekrarını önler hem de UI bileşenlerini daha kolay yönetilebilir hale getirir.