====
# Laravelの最近のバージョンで導入された機能
## Bladeコンポーネントの属性バッグ (Laravel 7以降)
Laravel 7で導入された「Bladeコンポーネントの属性バッグ」は、Bladeコンポーネントの開発を大幅に改善した機能です。この機能により、コンポーネントに渡された属性をよりきれいに管理し、操作することができるようになりました。
### 実践的な使用例
カスタムボタンコンポーネントを作成する例を見てみましょう:
```php
// app/View/Components/Button.php
namespace App\View\Components;
use Illuminate\View\Component;
class Button extends Component
{
public $type;
public $text;
public function __construct($type = 'primary', $text = 'クリック')
{
$this->type = $type;
$this->text = $text;
}
public function render()
{
return view('components.button');
}
}
```
```blade
```
このコンポーネントは次のように使用できます:
```blade
```
レンダリングされると:
```html
```
`$attributes`バッグを使用することで、明示的に定義されていない属性(この場合は`id`と`data-confirm`)も自動的に要素に追加されます。また、`merge()`メソッドを使用してクラスを統合することもできます。
この機能により、再利用可能でカスタマイズ可能なコンポーネントの作成が非常に簡単になりました。