livewire-development

Activate this skill when:

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "livewire-development" with this command: npx skills add spatie/freek.dev/spatie-freek-dev-livewire-development

Livewire Development

When to Apply

Activate this skill when:

  • Creating or modifying Livewire components

  • Using wire: directives (model, click, loading, sort, intersect)

  • Implementing islands or async actions

  • Writing Livewire component tests

Documentation

Use search-docs for detailed Livewire 4 patterns and documentation.

Basic Usage

Creating Components

Single-file component (default in v4)

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

Multi-file component

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

Class-based component (v3 style)

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

With namespace

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

Converting Between Formats

Use php artisan livewire:convert create-post to convert between single-file, multi-file, and class-based formats.

Component Format Reference

Format Flag Structure

Single-file (SFC) default PHP + Blade in one file

Multi-file (MFC) --mfc

Separate PHP class, Blade, JS, tests

Class-based --class

Traditional v3 style class

View-based ⚡ prefix Blade-only with functional state

Single-File Component Example

Livewire 4 Specifics

Key Changes From Livewire 3

These things changed in Livewire 4, but may not have been updated in this application. Verify this application's setup to ensure you follow existing conventions.

  • Use Route::livewire() for full-page components; config keys renamed: layout → component_layout , lazy_placeholder → component_placeholder .

  • wire:model now ignores child events by default (use wire:model.deep for old behavior); wire:scroll renamed to wire:navigate:scroll .

  • Component tags must be properly closed; wire:transition now uses View Transitions API (modifiers removed).

  • JavaScript: $wire.$js('name', fn) → $wire.$js.name = fn ; commit /request hooks → interceptMessage() /interceptRequest() .

New Features

  • Component formats: single-file (SFC), multi-file (MFC), view-based components.

  • Islands (@island ) for isolated updates; async actions (wire:click.async , #[Async] ) for parallel execution.

  • Deferred/bundled loading: defer , lazy.bundle for optimized component loading.

Feature Usage Purpose

Islands @island(name: 'stats')

Isolated update regions

Async wire:click.async or #[Async]

Non-blocking actions

Deferred defer attribute Load after page render

Bundled lazy.bundle

Load multiple together

New Directives

  • wire:sort , wire:intersect , wire:ref , .renderless , .preserve-scroll are available for use.

  • data-loading attribute automatically added to elements triggering network requests.

Directive Purpose

wire:sort

Drag-and-drop sorting

wire:intersect

Viewport intersection detection

wire:ref

Element references for JS

.renderless

Component without rendering

.preserve-scroll

Preserve scroll position

Best Practices

  • Always use wire:key in loops

  • Use wire:loading for loading states

  • Use wire:model.live for instant updates (default is debounced)

  • Validate and authorize in actions (treat like HTTP requests)

Configuration

  • smart_wire_keys defaults to true ; new configs: component_locations , component_namespaces , make_command , csp_safe .

Alpine & JavaScript

  • wire:transition uses browser View Transitions API; $errors and $intercept magic properties available.

  • Non-blocking wire:poll and parallel wire:model.live updates improve performance.

For interceptors and hooks, see reference/javascript-hooks.md.

Testing

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

Verification

  • Browser console: Check for JS errors

  • Network tab: Verify Livewire requests return 200

  • Ensure wire:key on all @foreach loops

Common Pitfalls

  • Missing wire:key in loops → unexpected re-rendering

  • Expecting wire:model real-time → use wire:model.live

  • Unclosed component tags → syntax errors in v4

  • Using deprecated config keys or JS hooks

  • Including Alpine.js separately (already bundled in Livewire 4)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

arxiv-paper-writer

Use this skill whenever the user wants Claude Code to write, scaffold, compile, debug, or review an arXiv-style academic paper, especially survey papers with LaTeX, BibTeX citations, TikZ figures, tables, and PDF output. This skill should trigger for requests like writing a full paper, creating an arXiv paper project, turning a research topic into a LaTeX manuscript, reproducing the Paper-Write-Skill-Test agent-survey workflow, or setting up a Windows/Linux Claude Code paper-writing loop.

Archived SourceRecently Updated
Coding

cli-proxy-troubleshooting

排查 CLI Proxy API(codex-api-proxy)的配置、认证、模型注册和请求问题。适用场景包括:(1) AI 请求报错 unknown provider for model, (2) 模型列表中缺少预期模型, (3) codex-api-key/auth-dir 配置不生效, (4) CLI Proxy 启动后 AI 无法调用, (5) 认证成功但请求失败或超时。包含源码级排查方法:模型注册表架构、认证加载链路、 SanitizeCodexKeys 规则、常见错误的真实根因。

Archived SourceRecently Updated
Coding

visual-summary-analysis

Performs AI analysis on input video clips/image content and generates a smooth, natural scene description. | 视觉摘要智述技能,对传入的视频片段/图片内容进行AI分析,生成一段通顺自然的场景描述内容

Archived SourceRecently Updated
Coding

frontend-skill

全能高级前端研发工程师技能。擅长AI时代前沿技术栈(React最新 + shadcn/ui + Tailwind CSS v4 + TypeScript + Next.js),精通动效库与交互特效开发。采用Glue Code风格快速实现代码,强调高质量产品体验与高度友好的UI视觉规范。在组件调用、交互特效、全局Theme上保持高度规范:绝不重复造轮子,相同逻辑出现两次即封装为组件。具备安全意识,防范各类注入攻击。开发页面具有高度自适应能力,响应式设计贯穿始终。当用户无特殊技术栈要求时,默认采用主流前沿技术栈。

Archived SourceRecently Updated