跳到正文
FunCoding

livewire-4

Build Livewire 4 components and applications. Use when creating reactive Laravel interfaces, single-file components, multi-file components, page components, forms, actions, or any Livewire-based UI. Triggers include "Livewire component", "wire:model", "wire:click", building interactive Laravel UIs, or working with Livewire 4 projects.

Star
1,013
最近提交
2026年10月8日

config/claude/skills/livewire-4/SKILL.md

在 GitHub 上查看

Livewire 4

Build dynamic, reactive interfaces with PHP — no JavaScript required.

Component Formats

<?php // resources/views/components/⚡todos.blade.php
use Livewire\Component;
new class extends Component {
    public $todos = [];
    public $todo = '';
    
    public function add()
    {
        $this->todos[] = $this->todo;
        $this->reset('todo');
    }
};
?>
<div>
    <input type="text" wire:model="todo">
    <button wire:click="add">Add</button>
    @foreach ($todos as $item)
        <li wire:key="{{ $loop->index }}">{{ $item }}</li>
    @endforeach
</div>

Multi-file (for complex components)

php artisan make:livewire post.create --mfc

Creates: resources/views/components/post/⚡create/ with separate .php, .blade.php, .js, .css files.

Page components

php artisan make:livewire pages::post.create

Route with: Route::livewire('/posts/create', 'pages::post.create');

Core Patterns

Properties

  • Public properties auto-available in Blade
  • Use $this->reset('prop') to reset
  • Use $this->fill([...]) for bulk assignment
  • Protected properties hidden from client (not persisted)

Data Binding

<input wire:model="title">           <!-- Syncs on action -->
<input wire:model.live="search">     <!-- Syncs on input -->
<input wire:model.blur="email">      <!-- Syncs on blur -->

Actions

<button wire:click="save">Save</button>
<button wire:click="delete({{ $id }})">Delete</button>
<form wire:submit="store">...</form>

Computed Properties

use Livewire\Attributes\Computed;

#[Computed]
public function posts()
{
    return Post::latest()->get();
}

Access in Blade: $this->posts

Event Modifiers

  • wire:click.prevent - preventDefault
  • wire:keydown.enter - specific key
  • wire:click.debounce.500ms - debounce
  • wire:submit.throttle - throttle

Loading States

<button wire:click="save" class="data-loading:opacity-50">
    Save
</button>
<span class="not-data-loading:hidden">Saving...</span>

Confirmation

<button wire:click="delete" wire:confirm="Are you sure?">Delete</button>

Security

Always validate and authorize — public properties can be manipulated client-side.

public function delete(Post $post)
{
    $this->authorize('delete', $post);
    $post->delete();
}

Detailed References

Load these as needed:

  • Components deep dive: See references/components.md
  • Properties & state: See references/properties.md
  • Actions & events: See references/actions.md

相似的 Skill

prototype

MAmattpocock/skills288k近 7 天新增 10,178 个 star

angular-developer

AFaffaan-m/ECC278k近 7 天新增 4,046 个 star

官方

firecrawl-build-scrape

FIfirecrawl/firecrawl191k近 7 天新增 2,010 个 star

精选

frontend-design

为界面确定视觉方向和字体,避免模板化的默认样式。

ANanthropics/skills181k近 7 天新增 1,119 个 star

精选

theme-factory

为幻灯片、文档和网页套用主题配色与字体,内置 10 套主题。

ANanthropics/skills181k近 7 天新增 1,119 个 star

精选

web-artifacts-builder

用 React、Tailwind 和 shadcn/ui 构建多组件页面。

ANanthropics/skills181k近 7 天新增 1,119 个 star