Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

livewire-development

Livewire 4 のリアクティブコンポーネントを開発します。Livewireコンポーネントの作成・更新・修正時、`wire:model` / `wire:click` / `wire:loading` などの `wire:` ディレクティブの利用時、リアルタイム更新やローディング状態・リアクティブUIの実装時、コンポーネントの動作デバッグやLivewireテストの作成時に起動します。

description の原文を見る

>- Develops reactive Livewire 4 components. Activates when creating, updating, or modifying Livewire components; working with wire:model, wire:click, wire:loading, or any wire: directives; adding real-time updates, loading states, or reactivity; debugging component behavior; writing Livewire tests; or when the user mentions Livewire, component, counter, or reactive UI.

SKILL.md 本文

Livewire Development

適用タイミング

以下の場合にこのスキルを有効にします:

  • Livewire コンポーネントを作成または変更する場合
  • wire: ディレクティブ (model、click、loading、sort、intersect) を使用する場合
  • islands または async アクションを実装する場合
  • Livewire コンポーネントテストを書く場合

ドキュメント

詳細な Livewire 4 パターンとドキュメントは search-docs を使用してください。

基本的な使用方法

コンポーネントの作成

<code-snippet name="Component Creation Commands" lang="bash">

Single-file component (v4 での既定値)

{{ $assist->artisanCommand('make:livewire create-post') }}

Multi-file component

{{ $assist->artisanCommand('make:livewire create-post --mfc') }}

Class-based component (v3 スタイル)

{{ $assist->artisanCommand('make:livewire create-post --class') }}

名前空間付き

{{ $assist->artisanCommand('make:livewire Posts/CreatePost') }}

</code-snippet>

フォーマット間の変換

php artisan livewire:convert create-post を使用して、single-file、multi-file、class-based フォーマット間で変換します。

コンポーネントフォーマットリファレンス

フォーマットフラグ構造
Single-file (SFC)既定値PHP + Blade を 1 つのファイルに
Multi-file (MFC)--mfc分離された PHP クラス、Blade、JS、テスト
Class-based--class従来の v3 スタイルのクラス
View-based⚡ プレフィックス機能的状態を持つ Blade のみ

Single-File コンポーネント例

<code-snippet name="Single-File Component Example" lang="php"> <?php use Livewire\Component; new class extends Component { public int $count = 0; public function increment(): void { $this->count++; } } ?> <div> <button wire:click="increment">Count: @{{ $count }}</button> </div> </code-snippet>

Livewire 4 の詳細

Livewire 3 からの主な変更点

これらは Livewire 4 で変更されていますが、このアプリケーションでは更新されていない場合があります。既存の規約に従うようにこのアプリケーションのセットアップを確認してください。

  • フルページコンポーネントには Route::livewire() を使用してください。設定キーの名前変更: layoutcomponent_layoutlazy_placeholdercomponent_placeholder
  • wire:model は現在、デフォルトで子イベントを無視します (旧動作の場合は wire:model.deep を使用)。wire:scrollwire:navigate:scroll に名前変更されました。
  • コンポーネントタグは適切に閉じる必要があります。wire:transition は View Transitions API を使用するようになりました (修飾子は削除)。
  • JavaScript: $wire.$js('name', fn)$wire.$js.name = fncommit/request フック → interceptMessage()/interceptRequest()

新機能

  • コンポーネントフォーマット: single-file (SFC)、multi-file (MFC)、view-based コンポーネント。
  • Islands (@island) 分離された更新の場合。async アクション (wire:click.async#[Async]) 並列実行の場合。
  • 遅延/バンドル読み込み: deferlazy.bundle 最適化されたコンポーネント読み込みの場合。
機能使用方法目的
Islands@island(name: 'stats')分離された更新領域
Asyncwire:click.async または #[Async]ノンブロッキングアクション
Deferreddefer 属性ページレンダー後に読み込み
Bundledlazy.bundle複数をまとめて読み込み

新しいディレクティブ

  • wire:sortwire:intersectwire:ref.renderless.preserve-scroll が利用可能です。
  • ネットワークリクエストをトリガーする要素に data-loading 属性が自動的に追加されます。
ディレクティブ目的
wire:sortドラッグアンドドロップソート
wire:intersectビューポート交差検出
wire:refJS 用の要素参照
.renderlessレンダリングなしのコンポーネント
.preserve-scrollスクロール位置の保持

ベストプラクティス

  • ループ内では常に wire:key を使用してください
  • ローディング状態には wire:loading を使用してください
  • インスタント更新には wire:model.live を使用してください (既定値はデバウンスです)
  • アクション内で検証と認可を行ってください (HTTP リクエストと同様に扱います)

設定

  • smart_wire_keystrue がデフォルト。新しい設定: component_locationscomponent_namespacesmake_commandcsp_safe

Alpine & JavaScript

  • wire:transition はブラウザの View Transitions API を使用します。$errors$intercept マジックプロパティが利用可能です。
  • ノンブロッキングな wire:poll と並列 wire:model.live 更新がパフォーマンスを向上させます。

インターセプターとフックについては、reference/javascript-hooks.md を参照してください。

テスト

<code-snippet name="Testing Example" lang="php">

Livewire::test(Counter::class) ->assertSet('count', 0) ->call('increment') ->assertSet('count', 1);

</code-snippet>

検証

  1. ブラウザコンソール: JS エラーをチェック
  2. ネットワークタブ: Livewire リクエストが 200 を返すことを確認
  3. すべての @foreach ループで wire:key を確認

よくある落とし穴

  • ループ内で wire:key がない → 予期しない再レンダリング
  • wire:model がリアルタイムであることを期待する → wire:model.live を使用してください
  • コンポーネントタグが閉じられていない → v4 の構文エラー
  • 非推奨の設定キーまたは JS フックを使用している
  • Alpine.js を個別にインクルードしている (すでに Livewire 4 にバンドルされています)

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
spatie
リポジトリ
spatie/freek.dev
ライセンス
MIT
最終更新
不明

Source: https://github.com/spatie/freek.dev / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: spatie · spatie/freek.dev · ライセンス: MIT