Installation

Ein Paket, eine optionale Service-Registrierung.

Paket installieren#

dotnet add package Deja

Deja hat Multi-Targeting für net8.0, net9.0 und net10.0 und funktioniert sowohl mit Blazor WebAssembly als auch mit Blazor Server. Es hat keine Drittanbieter-Abhängigkeiten.

Cache registrieren (empfohlen)#

AddDeja() registriert den gemeinsamen Query-Cache. Es ist Opt-in: Auch ohne funktioniert alles, aber Queries mit Key teilen ihre Ergebnisse dann nicht über Komponenten hinweg.

Program.cs
using Deja;

builder.Services.AddDeja(options =>
{
    options.DefaultStaleTime = TimeSpan.FromSeconds(10);
    options.DefaultCacheTime = TimeSpan.FromMinutes(5);
});

Die gezeigten Optionen sind die Konfiguration dieser Seite selbst. Jede Eigenschaft hat einen sinnvollen Standardwert — siehe DejaOptions für die vollständige Liste.

Blazor Server: bei Scoped bleiben

AddDeja() registriert DejaClient bewusst als Scoped: ein Cache pro Browser-Tab auf WebAssembly, einer pro User-Circuit auf dem Server. Es auf Blazor Server als Singleton neu zu registrieren, würde die gecachten API-Antworten eines Users mit allen anderen verbundenen Usern teilen — ein Datenleck, kein Performance-Gewinn.

Using hinzufügen#

_Imports.razor
@using Deja

Von der Komponenten-Basisklasse erben#

Komponenten, die Queries oder Mutations besitzen, erben von DejaComponentBase, das sich an den deklarierten Zustand anhängt und die Komponente neu rendert, wenn er sich ändert:

@inherits DejaComponentBase

Weiter geht's mit dem Schnellstart.