Prevent a Livewire component from re-rendering

Prevent a Livewire component from re-rendering

Published
Jan 10, 2024
Written by
Benjamin Crozat
0
comments
1 minutes
read

Introduction to re-rendering prevention in Livewire

I previously talked about various ways to re-render a Livewire component. But now, let’s do a 180° and talk about doing the opposite: preventing re-renders!

Block re-renders in a Livewire component

Sometimes, you might want to run an action or listen to an event in a Livewire component. Problem is: this triggers a re-render. The solution? The new Livewire\Attributes\Renderless attribute!

namespace App\Livewire;
 
use Livewire\Component;
use Livewire\Attributes\Renderless;
 
class Show extends Component
{
    #[Renderless] 
    public function incrementViewCount()
    {
        $this->model->incrementViewCount();
    }
}

This can be a huge win for the performances of your Laravel application.

Oh and by the way, if you still can’t deal with PHP’s new attributes, you can use the skipRender() method like so:

namespace App\Livewire;
 
use Livewire\Component;
 
class Show extends Component
{
    public function incrementViewCount()
    {
        $this->model->incrementViewCount();

        $this->skipRender();
    }
}
About Benjamin Crozat
Benjamin Crozat

Hi! I’m from the South of France and I’ve been a self-taught web developer since 2006. When I started learning PHP and JavaScript, PHP 4 was still widely used, Internet Explorer 6 ruled the world, and we used DHTML to add falling snow on websites.

Being able to educate myself for free on the web changed my life for the better. Giving back to the community was a natural direction in my career and I truly enjoy it.

Therefore, I decided to take action:

  1. I launched this blog in September 2022 with the goal to be in everyone’s Google search. I get more than tens of thousands of monthly clicks from it and even more visits overall (my analytics dashboard is public by the way).
  2. I also started growing my X (formerly Twitter) account at the same time, which has now over 7,000 followers.
  3. All the content I write is free thanks to my sponsors.

I also want to be completely free with my time and make a living with my own products. In April 2024, I launched Nobinge, a tool to summarize and chat with your content, including YouTube videos.

Believe me, I’m just getting started!

0 comments

You need to be signed in to comment this post.
Sign in with GitHub