Laravel中Blade组件用于构建可复用UI,推荐使用类组件。通过php artisan make:component Alert生成组件,定义属性和构造函数,在resources/views/components/alert.blade.php编写模板,支持默认插槽与命名插槽。在视图中用标签调用,匿名组件适用于无逻辑的简单场景,提升代码整洁性与维护性。

在Laravel中,Blade组件是一种强大的工具,用于构建可复用的UI片段。它让前端代码更清晰、更模块化,特别适合在大型项目中维护和组织视图。下面介绍如何创建和使用Blade组件,以及组件化开发的核心方法。
创建Blade组件
在Laravel中创建Blade组件有两种方式:类组件和匿名组件。推荐使用类组件,因为它结构清晰,支持属性传递和插槽机制。
1. 生成组件类在命令行运行Artisan命令来创建一个组件:
php artisan make:component Alert
这会在 app/View/Components 目录下生成一个 Alert.php 文件,并在 resources/views/components 下创建对应的Blade模板文件 alert.blade.php。 2. 定义组件逻辑编辑 Alert.php,可以在构造函数或属性中接收数据:
class Alert extends Component
{
public $type;
public $message;
public function __construct($type = 'info', $message = '')
{
$this->type = $type;
$this->message = $message;
}
public function render()
{
return view('components.alert');
}
}
编写组件模板
编辑 resources/views/components/alert.blade.php,使用Blade语法输出内容:
也可以使用 slot 来支持内容嵌套:{{ $message }}
{{ $slot }}
在页面中使用组件
在任意Blade模板中,通过自定义标签调用组件:
x- 前缀是Laravel识别组件的关键。组件名称使用短横线命名法(kebab-case),对应类名的驼峰转小写形式。操作成功完成!
使用插槽(Slots)增强灵活性
除了默认的 $slot,还可以定义命名插槽,实现更复杂的布局结构。
1. 在组件模板中使用命名插槽例如创建一个卡片组件 Card.php 和 card.blade.php:
2. 使用命名插槽{{ $header }}{{ $slot }}@if(isset($footer)) @endif
在视图中这样使用:
这是标题 这是卡片主体内容。
匿名组件(简单场景使用)
对于不需要额外逻辑的简单组件,可以直接在 resources/views/components 中创建Blade文件,如 button.blade.php:
然后在模板中使用:










