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.