Prevent a Livewire component from re-rendering
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(); } }