---
title: "TanStack Router's New Reactive Core: A Signal Graph"
url: https://daily.dev/posts/tanstack-router-s-new-reactive-core-a-signal-graph-cmhmjdnrd
source_url: https://tanstack.com/blog/tanstack-router-signal-graph
type: article
source: "TanStack"
published: 2026-08-23T12:24:03.825Z
updated: 2026-08-23T12:59:47.878Z
tags: ["react", "performance", "solidjs"]
reading_time: 5
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# TanStack Router's New Reactive Core: A Signal Graph

**[TanStack](https://daily.dev/sources/tanstack-blog)** · 5 min read · 0 upvotes · 0 comments

## Summary

TanStack Router has replaced its single monolithic router.state object with a graph of smaller, independent stores that serve as the internal source of truth, with router.state now derived from them for backward compatibility. This narrows change propagation so navigation triggers fewer subscriber updates, verified via CodSpeed benchmarks on a synthetic rerender-heavy page. The store layer is now defined behind a shared contract, letting each framework adapter plug in its own implementation: React and Vue use TanStack Store, while Solid uses native Solid signals (backed by memos and a FinalizationRegistry for cleanup). The tradeoff is bundle size: React and Vue bundles grew slightly since representing several stores costs more code than one state object, while Solid's bundle shrank because it no longer depends on tanstack/store. No public API changes are required; useMatch, useLocation, and Link keep the same surface.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://tanstack.com/blog/tanstack-router-signal-graph>

## Questions this post answers

### What changed internally in TanStack Router's reactive state model?

TanStack Router replaced its single router.state object as the internal source of truth with a graph of smaller, independently updating stores; router.state is now a derived snapshot kept for backward compatibility. This narrows change propagation during navigation, since consumers like useMatch can subscribe directly to the specific store they need instead of selecting from one large state object. No public API changes are required.

_Track internal refactors like this signal graph change before upgrading a TanStack Router app on daily.dev._

### Does TanStack Router's new store-based architecture affect bundle size?

Yes, bundle size shifts differ by framework adapter. React and Vue bundles increased slightly since modeling several stores takes more code than one state object (both use TanStack Store internally), while Solid's bundle decreased because its adapter now uses native Solid signals and memos instead of depending on tanstack/store.

_Compare framework-specific tradeoffs like these on daily.dev before picking a router adapter._

### How does useMatch subscribe to router state after TanStack Router's signal graph refactor?

useMatch now resolves the relevant match store directly via router.stores.getMatchStoreByRouteId(routeId) and subscribes to it with useStore, instead of subscribing through the whole router state object and filtering state.matches for the right match. getMatchStoreByRouteId creates the derived store on demand and caches it in an LRU cache so other subscribers can reuse it without leaking memory.

_Follow internal implementation details like this on daily.dev when debugging router performance._

## Similar posts on daily.dev

- [TanStack Start - A New Meta Framework Powered By React Or SolidJS](https://daily.dev/posts/tanstack-start---a-new-meta-framework-powered-by-react-or-solidjs-kqfr1cdvm) · InfoQ · 40 upvotes · 2 comments

---

Tags: [#react](https://daily.dev/tags/react), [#performance](https://daily.dev/tags/performance), [#solidjs](https://daily.dev/tags/solidjs)

[View this post on daily.dev](https://daily.dev/posts/tanstack-router-s-new-reactive-core-a-signal-graph-cmhmjdnrd)
