Zum Hauptinhalt springen
Dieser Artikel fasst die README von livewire/blaze als Primärquelle zusammen. Zum aktuellen Zeitpunkt gibt es auf laravel.com noch keine dedizierte Dokumentation zu Blaze.

Was ist Blaze?

Blaze ist ein von Livewire offiziell veröffentlichtes Paket zur Beschleunigung von Blade-Komponenten. Zielobjekt sind nicht nur Livewire-Komponenten, sondern auch gewöhnliche anonyme Blade-Komponenten. Die README zeigt als Benchmark das Rendering einer anonymen Komponente 25.000-mal: 500 ms → 13 ms (rund 97,4 % Reduktion). Auch szenariospezifisch werden Reduktionen zwischen 91 % und 97 % berichtet.

Drei Optimierungsstrategien

Blaze stellt drei Strategien bereit: compile (Standard), memo und fold.

Welche Strategie sollten Sie wählen?

StrategieWann wählen?VorteileZu beachten
compileStandardstrategie, mit der Sie zuerst startenHohe Kompatibilität, ohne Konfiguration leicht zu beschleunigenDie allgemeinen Einschränkungen müssen beachtet werden
memoIcons, Badges usw., die mit denselben Props mehrfach gerendert werdenReduziert die Kosten des erneuten Renderings nach dem ersten DurchlaufNicht nutzbar bei Komponenten mit Slot
foldUIs, die statisch feststehen, für maximale PerformanceBeseitigt den Laufzeit-Overhead nahezu vollständigBei falschem Umgang mit globalem State oder dynamischen Werten drohen Inkonsistenzen
Wenn Sie unsicher sind, ist es sicher, mit compile zu beginnen und memo bzw. fold erst dort einzusetzen, wo Sie einen Engpass identifiziert haben.

Installation und Aktivierung

composer require livewire/blaze:^1.0
Es gibt zwei Wege zur Aktivierung.

1) @blaze an einer einzelnen Komponente ergänzen

@blaze

<button {{ $attributes }}>
    {{ $slot }}
</button>
Bei Bedarf lässt sich die Strategie umschalten.
@blaze(memo: true)
@blaze(fold: true)

2) Aktivierung pro Verzeichnis mit Blaze::optimize()

use Livewire\Blaze\Blaze;

public function boot(): void
{
    Blaze::optimize()
        ->in(resource_path('views/components'));
}
Löschen Sie nach dem Aktivieren die kompilierten Views.
php artisan view:clear
@blaze eignet sich, „um es zunächst auszuprobieren”, Blaze::optimize() „um es im Betrieb breit anzuwenden”. Auch die README empfiehlt, zunächst mit einem eingeschränkten Verzeichnis zu starten und schrittweise auszuweiten.

Einschränkungen

In der README genannte Einschränkungen:
  • Klassenbasierte Komponenten werden nicht unterstützt
  • Die Variable $component steht nicht zur Verfügung
  • View-Composer/-Creator/Lifecycle-Events werden nicht ausgelöst
  • Die automatische Injektion von View::share()-Variablen wird nicht unterstützt (falls nötig, explizit $__env->shared('key') verwenden)
  • Für @aware zwischen Blade und Blaze gibt es Einschränkungen (sowohl Eltern- als auch Kindkomponente müssen auf der Blaze-Seite verwendet werden)
  • Blaze-Komponenten können nicht direkt über view() gerendert werden (nur über Komponenten-Tags)

Zusammenspiel mit Flux UI

Die Blaze-README weist darauf hin, dass sich Blaze bei Verwendung von Flux UI allein durch die Installation und ohne zusätzliche Konfiguration nutzen lässt.

Überblick zur Funktionsweise

Normales Blade durchläuft bei jedem Aufruf eine Rendering-Pipeline mit Komponentenauflösung und Attributverarbeitung. compile von Blaze kompiliert dies zu einer optimierten PHP-Funktion, die direkt aufgerufen wird, wodurch der Overhead der Pipeline erheblich reduziert wird. Wie in der README beschrieben, ergibt sich konzeptionell folgender Unterschied:
  • Normal: Standard-Blade-Rendering wird jedes Mal ausgeführt
  • Blaze compile: kompilierte Funktion wird direkt aufgerufen
  • Blaze fold: HTML wird zur Compile-Zeit eingebettet, sodass Laufzeit­berechnungen weiter reduziert werden
fold ist am schnellsten, doch Elemente, die die statische Auflösung durchbrechen (Authentifizierungsstatus, request-abhängige Werte, session-abhängige Werte, zeitabhängige Werte usw.), können zu Fehlfunktionen führen. Wenden Sie es nur auf besonders lastintensive Stellen an und rollen Sie es schrittweise mit Verhaltensprüfungen aus.
Zuletzt geändert am 13. Juli 2026