Skip to main content
Dit artikel is gebaseerd op de README van livewire/blaze als primaire bron. Op dit moment is er op laravel.com nog geen aparte documentatie voor Blaze.

Wat is Blaze?

Blaze is een officieel pakket van Livewire om Blade-componenten sneller te maken. Het richt zich niet alleen op Livewire-componenten, maar ook op gewone anonieme Blade-componenten. De README toont een benchmark waarbij 25.000 renders van een anoniem component teruggaan van 500 ms → 13 ms (ongeveer 97,4% reductie). Ook per scenario worden reducties van 91 tot 97% gerapporteerd.

Drie optimalisatiestrategieën

Blaze biedt drie strategieën: compile (standaard), memo en fold.

Welke moet je kiezen?

Twijfel je? Begin dan met compile en pas memo / fold alleen toe op plekken waar je een bottleneck hebt vastgesteld — dat is de veiligste aanpak.

Installatie en inschakelen

Er zijn twee manieren om Blaze in te schakelen.

1) @blaze toevoegen aan afzonderlijke componenten

Wissel indien nodig van strategie.

2) Per directory inschakelen met Blaze::optimize()

Wis na het inschakelen de gecompileerde views.
@blaze is geschikt om “eerst eens te proberen”, Blaze::optimize() om “breed toe te passen in productie”. Ook de README raadt aan om stapsgewijs te beginnen met een beperkte directory.

Beperkingen

Dit zijn de beperkingen die expliciet in de README staan.
  • Klassegebaseerde componenten worden niet ondersteund
  • De variabele $component is niet beschikbaar
  • View composers / creators / lifecycle events worden niet afgevuurd
  • Automatische injectie van View::share()-variabelen wordt niet ondersteund (gebruik zo nodig expliciet $__env->shared('key'))
  • @aware over de grens van Blade en Blaze heen is beperkt (ouder en kind moeten beide aan de Blaze-kant zitten)
  • Je kunt een Blaze-component niet rechtstreeks renderen via view() (alleen via componenttags)

Combinatie met Flux UI

De README van Blaze vermeldt dat je, als je Flux UI gebruikt, direct aan de slag kunt door alleen Blaze te installeren, zonder extra configuratie.

Hoe het werkt in het kort

Gewone Blade doorloopt bij elke render de volledige renderpipeline, inclusief componentresolutie en attribuutverwerking. De compile-strategie van Blaze compileert dit naar een geoptimaliseerde PHP-functie die rechtstreeks wordt aangeroepen, waardoor de overhead van de pipeline sterk afneemt. Zoals de README uitlegt, is het conceptuele verschil als volgt.
  • Normaal: de standaard renderafhandeling van Blade wordt telkens uitgevoerd
  • Blaze compile: een gecompileerde functie wordt rechtstreeks aangeroepen
  • Blaze fold: de HTML wordt tijdens compilatie ingebed, waardoor runtime-berekeningen nog verder afnemen
fold is het snelst, maar elementen die de aanname van statische inhoud doorbreken (authenticatiestatus, request-afhankelijke waarden, sessie-afhankelijke waarden, tijdsafhankelijke waarden, enz.) kunnen problemen veroorzaken. Pas het stapsgewijs toe, alleen op plekken met hoge belasting, en controleer daarbij het gedrag.
Laatst gewijzigd op 6 september 2026