Laravel中如何使用匿名组件进行定义及操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计785个文字,预计阅读时间需要4分钟。
删除PHP类文件后直接使用 标签。
匿名组件到底长什么样
匿名组件就是只有 Blade 文件、没有对应 PHP 类的组件。它不继承 Illuminate\View\Component,也不需要 make:component 命令生成类文件。
- 视图路径必须是
resources/views/components/[name].blade.php(如resources/views/components/button.blade.php) - 文件名转标签名时全部小写、用短横线分隔:比如
user-card.blade.php→<x-user-card /> - 支持
@props声明属性、{{ $slot }}渲染插槽、{{ $attributes }}合并外部 HTML 属性 - 不支持构造函数参数注入或类型提示——所有传入值都靠 Blade 指令解析
为什么 <x-xxx /> 找不到类还报错
Laravel 在首次编译含组件标签的模板时,会把“类名推导逻辑”硬编码进 storage/framework/views/ 下的 PHP 缓存文件;同时 Composer 的 autoload_classmap.php 若仍记录已删类路径,运行时就会尝试 include 一个不存在的文件。
本文共计785个文字,预计阅读时间需要4分钟。
删除PHP类文件后直接使用 标签。
匿名组件到底长什么样
匿名组件就是只有 Blade 文件、没有对应 PHP 类的组件。它不继承 Illuminate\View\Component,也不需要 make:component 命令生成类文件。
- 视图路径必须是
resources/views/components/[name].blade.php(如resources/views/components/button.blade.php) - 文件名转标签名时全部小写、用短横线分隔:比如
user-card.blade.php→<x-user-card /> - 支持
@props声明属性、{{ $slot }}渲染插槽、{{ $attributes }}合并外部 HTML 属性 - 不支持构造函数参数注入或类型提示——所有传入值都靠 Blade 指令解析
为什么 <x-xxx /> 找不到类还报错
Laravel 在首次编译含组件标签的模板时,会把“类名推导逻辑”硬编码进 storage/framework/views/ 下的 PHP 缓存文件;同时 Composer 的 autoload_classmap.php 若仍记录已删类路径,运行时就会尝试 include 一个不存在的文件。

