用途:帮助开发者在 MoonShine 管理面板中创建自定义展示组件(display components),适用于仪表盘部件、统计卡片、徽章、面包屑、菜单、提示条等纯 UI 装饰与内容展示场景,不用于数据输入或保存。
主要能力:内置 .guidelines/components-development.md 指南,涵盖组件完整结构与组成、组件与字段的对比、Fluent 方法与 viewData()、插槽与嵌套组件模式,以及 Alert、StatsCard、Breadcrumbs 等完整示例。
核心规则:组件仅用于展示,不保存数据,没有 default/preview/raw 字段模式;Fluent 方法必须返回 static 以支持链式调用;根元素必须添加 {{ $attributes }} 以便定制;闭包取值使用 value()(导入 use function MoonShine\UI\Components\Layout\value);viewData() 传递全部数据,字段的自动系统数据不适用于组件;assets() 方法必须为 protected 而非 public;基类需选择正确(MoonShineComponent 或 AbstractWithComponents);逻辑放入 prepareBeforeRender(),禁止在 Blade 视图中写 @php 块。
使用方式:PHP 类放在 app/MoonShine/Components/YourComponent.php,Blade 视图放在 resources/views/admin/components/your-component.blade.php。简单组件继承 MoonShineComponent,含子组件的容器继承 AbstractWithComponents(在 Blade 中用 <x-moonshine::components :components="$components" /> 渲染)。通过 viewData() 向视图传数据,用 prepareBeforeRender() 处理属性与样式合并,用返回 static 的 Fluent 方法配置组件。
适用场景:需要在后台做静态内容展示、UI 装饰、分组其他组件、仪表盘部件或导航元素时使用;涉及用户输入或数据持久化时应改用字段(Fields)。
限制:资料未提供该技能的具体安装命令、收费或平台支持信息。