You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/blog/tanstack-router-signal-graph.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ TanStack Router used to center most of its reactivity around one large object: `
15
15
This builds on TanStack Store's migration to [alien-signals](https://github.com/stackblitz/alien-signals) in [TanStack Store PR #265](https://github.com/TanStack/store/pull/265), implemented by [@DavidKPiano](https://github.com/davidkpiano). In external benchmarks like [js-reactivity-benchmark](https://github.com/transitive-bullshit/js-reactivity-benchmark), alien-signals is currently the best-performing signals implementation tested. But the main improvement here is not just a faster primitive. It is a different reactive model.
16
16
17
17
The result is
18
+
18
19
- better update locality,
19
20
- fewer store updates during navigation,
20
21
- substantially faster client-side navigation,
@@ -26,12 +27,12 @@ The old model had one main reactive surface: `router.state`.
26
27
27
28
That was useful. It made it possible to prototype features quickly and ship a broad API surface without first designing a perfect internal reactive topology. But it also meant many different concerns shared the same reactive entry point.
28
29
29
-
| Concern | Stored under `router.state`| Typical consumer |
| Match lifecycle |`matches`, `pendingMatches`, `cachedMatches`|`useMatch`, `Matches`, `Outlet`|
34
+
| Navigation status |`status`, `isLoading`, `isTransitioning`| pending UI, transitions |
35
+
| Side effects |`redirect`, `statusCode`| navigation and response handling |
35
36
36
37
This did not mean every update rerendered everything. Options like `select` and `structuralSharing` could prevent propagation. But many consumers still started from a broader subscription surface than they actually needed.
0 commit comments