wire:text

Are you a visual learner?
Master Livewire with our in-depth screencasts
Watch now

wire:text is a directive that dynamically updates an element's text content based on a component property or expression. Unlike using Blade's {{ }} syntax, wire:text updates the content without requiring a network roundtrip to re-render the component.

If you are familiar with Alpine's x-text directive, the two are essentially the same.

Basic usage

Here's an example of using wire:text to optimistically show updates to a Livewire property without waiting for a network roundtrip.

use Livewire\Component;
use App\Models\Post;
 
class ShowPost extends Component
{
public Post $post;
 
public $likes;
 
public function mount()
{
$this->likes = $this->post->like_count;
}
 
public function like()
{
$this->post->like();
 
$this->likes = $this->post->fresh()->like_count;
}
}
<div>
<button x-on:click="$wire.likes++; $wire.like()">❤️ Like</button>
 
Likes: <span wire:text="likes"></span>
</div>

When the button is clicked, $wire.likes++ immediately updates the displayed count through wire:text, while $wire.like() persists the change to the database in the background.

This pattern makes wire:text perfect for building optimistic UIs in Livewire.