Gemeinsamer Cache
Zwei Geschwister-Komponenten führen denselben Key aus. Ein Fetch bedient beide; ein Refetch aus einem der beiden Panels aktualisiert beide; der Inspector zeigt den einen Eintrag, den sie abonniert haben.
Zwei Komponenten, ein Key, ein Fetch
Component A renders: 4
State
IsLoading
IsReFetching
IsError
IsCachedData
IsStale
ReFetchCount: 1UpdatedAt: 20:33:18
- delectus aut autem
- quis ut nam facilis et officia qui
- fugiat veniam minus
- et porro tempora
- laboriosam mollitia et enim quasi adipisci quia provident illum
Component B renders: 4
State
IsLoading
IsReFetching
IsError
IsCachedData
IsStale
ReFetchCount: 1UpdatedAt: 20:33:18
- delectus aut autem
- quis ut nam facilis et officia qui
- fugiat veniam minus
- et porro tempora
- laboriosam mollitia et enim quasi adipisci quia provident illum
| Key | Data | Fetching | Invalidated | Subscribers | Updated |
|---|---|---|---|---|---|
| ["todos","list",5] | ✓ | · | · | 2 | 20:33:18 |
Two sibling components execute the same key. Watch the network tab: one request. The cache inspector shows both panels subscribed to the single entry; a refetch from either panel updates both.
<div class="demo-panels">
<SharedCachePanel Title="Component A"/>
<SharedCachePanel Title="Component B"/>
</div>
<CacheInspector Keys="@(new[] { DocsKeys.TodoList(5) })"/>
<p class="demo-note">
Two sibling components execute the same key. Watch the network tab: one request. The cache
inspector shows both panels subscribed to the single entry; a refetch from either panel
updates both.
</p>Worauf du achten solltest#
- Subscribers: 2 im Cache-Inspector — beide Panels beobachten denselben Eintrag.
- Beim ersten Laden klinkt sich Panel B in den laufenden Fetch von Panel A ein: Der Netzwerk-Tab zeigt einen Request für zwei Komponenten.
- „Refetch from this panel“ aktualisiert beide Panels — über den Eintrag, nie von Panel zu Panel. Die Query jedes Panels benachrichtigt nur die eigene Komponente; der gemeinsame Eintrag ist der Multicast-Punkt.
- Jeder Refetch erhöht beide Render-Zähler — das täte aber jedes Design mit geteilten Daten; in der Isolations-Demo stehen die Zähler dagegen still.