Mahmoud Al-HabashOpen to new projects
  • WorkWork
  • ServicesServices
  • LabLab
  • WritingWriting
  • ContactContact
Amman--:--عربي
Writing/Livewire

Livewire v4 Navigate: SPA-Like Navigation

Enable SPA-like page transitions without a framework.

1 February 20261 min readLivewireاقرأ بالعربية

On this page

  1. Basic Navigation Links
  2. Persist Elements Across Pages
  3. Loading Indicators

Livewire v4 Navigate provides SPA-like page transitions without full page reloads.

Basic Navigation Links

blade
<!-- Standard navigate - fetches on click -->
<a href="/dashboard" wire:navigate>Dashboard</a>

<!-- Prefetch on hover for faster navigation -->
<a href="/posts" wire:navigate.hover>Posts</a>

<!-- Navigation menu example -->
<nav class="flex gap-4">
    <a href="/" wire:navigate class="hover:text-blue-500">Home</a>
    <a href="/about" wire:navigate.hover class="hover:text-blue-500">About</a>
    <a href="/contact" wire:navigate.hover class="hover:text-blue-500">Contact</a>
</nav>

Persist Elements Across Pages

blade
<!-- Audio player persists across navigation -->
@persist('audio-player')
    <div class="fixed bottom-0 w-full bg-gray-900 p-4">
        <audio id="player" src="{{ $currentTrack }}"></audio>
        <div class="flex items-center gap-4">
            <button onclick="document.getElementById('player').play()">Play</button>
            <span>{{ $trackName }}</span>
        </div>
    </div>
@endpersist

<!-- Shopping cart sidebar persists -->
@persist('cart-sidebar')
    <livewire:cart-sidebar />
@endpersist

Loading Indicators

blade
<!-- Show loading bar during navigation -->
<div 
    wire:loading.class="opacity-100"
    class="fixed top-0 left-0 h-1 bg-blue-500 opacity-0 transition-opacity"
    style="width: 100%"
></div>

<!-- Or use with Alpine -->
<div 
    x-data="{ navigating: false }"
    x-on:livewire-navigate-start.window="navigating = true"
    x-on:livewire-navigate-end.window="navigating = false"
>
    <div x-show="navigating" class="loading-spinner"></div>
</div>
All articles

Keep reading

  • Authorization in Livewire v4 Components1 February 20261 min read
  • Blaze Pre-Compiler: Massive Performance Gains in Livewire v41 February 20261 min read
  • Building a Bookmark Feature with Livewire v41 February 20261 min read