TanStack
Router
v1
v1
Libraries
Framework
Start
RC
Docs
Router
Docs
Data & State Management
Query
Docs
DB
beta
Docs
Store
alpha
Docs
AI
beta
Docs
UI & UX
Table
Docs
Form
new
Docs
Hotkeys
alpha
Docs
Performance
Virtual
Docs
Pacer
beta
Docs
Tooling
Devtools
alpha
Docs
Config
Docs
CLI
alpha
Docs
Intent
alpha
Docs
Learn
Resources
Blog
Release notes, architecture notes, and essays.
YouTube
The official TanStack channel.
Community
Channels
Discord
Community support and real-time discussion.
GitHub
Source, issues, discussions, and releases.
People & Work
Maintainers
Meet the people maintaining the stack.
Contributors
Core, library, and community contributors.
Showcase
Products and teams building with TanStack.
Tools
Tools
Builder
Alpha
Generate TanStack app starters.
Stats
NPM and ecosystem usage data.
Merch
Recent Products
All Merch
Browse all TanStack apparel, accessories, and stickers.
Support
Support
Support Overview
Find the right support path.
Partners
Companies supporting TanStack.
OSS Sponsors
Sponsors keeping TanStack open source.
Enterprise Support
Private consulting and expert support.
Contact
Get in touch with the TanStack team.
About
Ethos
How we think about open source and products.
Tenets
The values that shape TanStack libraries.
Brand Guide
Logos, colors, and brand usage.
Search
AI
Ask AI
Log In
Log In
Libraries
All Libraries
Browse the full set of public packages.
Framework
Start
RC
Docs
Router
Docs
Data & State Management
Query
Docs
DB
beta
Docs
Store
alpha
Docs
AI
beta
Docs
UI & UX
Table
Docs
Form
new
Docs
Hotkeys
alpha
Docs
Performance
Virtual
Docs
Pacer
beta
Docs
Tooling
Devtools
alpha
Docs
Config
Docs
CLI
alpha
Docs
Intent
alpha
Docs
Learn
Resources
Blog
Release notes, architecture notes, and essays.
YouTube
The official TanStack channel.
Professional Workshops
Community
Channels
Discord
Community support and real-time discussion.
GitHub
Source, issues, discussions, and releases.
People & Work
Maintainers
Meet the people maintaining the stack.
Contributors
Core, library, and community contributors.
Showcase
Products and teams building with TanStack.
Tools
Tools
Builder
Alpha
Generate TanStack app starters.
Stats
NPM and ecosystem usage data.
Merch
Recent Products
All Merch
Browse all TanStack apparel, accessories, and stickers.
Support
Support
Support Overview
Find the right support path.
Partners
Companies supporting TanStack.
OSS Sponsors
Sponsors keeping TanStack open source.
Enterprise Support
Private consulting and expert support.
Contact
Get in touch with the TanStack team.
About
Ethos
How we think about open source and products.
Tenets
The values that shape TanStack libraries.
Brand Guide
Logos, colors, and brand usage.
Partnership Inquiry
Docs
Partners
React
Latest
Search...
K
Menu
Home
Blog
Frameworks
Contributors
NPM Stats
GitHub
YouTube
Discord
Getting Started
Overview
Quick Start
Devtools
Decisions on DX
Comparison
Frequently Asked Questions
Installation Guides
Manual Setup
Vite
Rspack/Rsbuild
Webpack
Esbuild
Router CLI
Migrate from React Router
Migrate from React Location
Routing
Routing Concepts
Route Trees
Route Matching
File-Based Routing
Virtual File Routes
Code-Based Routing
File Naming Conventions
Guides
Code Splitting
Automatic Code Splitting
Creating a Router
Outlets
Navigation
Router Events
Path Params
Search Params
Link Options
Custom Links
Data Loading
Deferred Data Loading
External Data Loading
Data Mutations
Type Safety
Type Utilities
Preloading
Document Head Management
Route Masking
Navigation Blocking
Custom Search Param Serialization
History Types
Router Context
Not Found Errors
Authenticated Routes
Scroll Restoration
Static Route Data
SSR
Render Optimizations
API
Router
File-Based Routing
Integrations
TanStack Query
ESLint
ESLint Plugin Router
Create Route Property Order
Router Examples
Quickstart (file-based)
Quickstart (code-based)
Basic (file-based)
Basic (code-based)
Basic + React Query (file-based)
Basic + React Query (code-based)
Basic + SSR (file-based)
Basic + SSR Streaming (file-based)
Kitchen Sink (file-based)
Kitchen Sink (code-based)
Kitchen Sink + React Query (file-based)
Kitchen Sink + React Query (code-based)
Location Masking
Authenticated Routes
Scroll Restoration
Deferred Data
Navigation Blocking
View Transitions
Framer Motion
With tRPC
With tRPC + React Query
Monorepo basic
Monorepo basic (with lazy loading)
Monorepo with React Query
latest
React
Latest
Menu
Home
Blog
Frameworks
Contributors
NPM Stats
GitHub
YouTube
Discord
Getting Started
Overview
Quick Start
Devtools
Decisions on DX
Comparison
Frequently Asked Questions
Installation Guides
Manual Setup
Vite
Rspack/Rsbuild
Webpack
Esbuild
Router CLI
Migrate from React Router
Migrate from React Location
Routing
Routing Concepts
Route Trees
Route Matching
File-Based Routing
Virtual File Routes
Code-Based Routing
File Naming Conventions
Guides
Code Splitting
Automatic Code Splitting
Creating a Router
Outlets
Navigation
Router Events
Path Params
Search Params
Link Options
Custom Links
Data Loading
Deferred Data Loading
External Data Loading
Data Mutations
Type Safety
Type Utilities
Preloading
Document Head Management
Route Masking
Navigation Blocking
Custom Search Param Serialization
History Types
Router Context
Not Found Errors
Authenticated Routes
Scroll Restoration
Static Route Data
SSR
Render Optimizations
API
Router
File-Based Routing
Integrations
TanStack Query
ESLint
ESLint Plugin Router
Create Route Property Order
Router Examples
Quickstart (file-based)
Quickstart (code-based)
Basic (file-based)
Basic (code-based)
Basic + React Query (file-based)
Basic + React Query (code-based)
Basic + SSR (file-based)
Basic + SSR Streaming (file-based)
Kitchen Sink (file-based)
Kitchen Sink (code-based)
Kitchen Sink + React Query (file-based)
Kitchen Sink + React Query (code-based)
Location Masking
Authenticated Routes
Scroll Restoration
Deferred Data
Navigation Blocking
View Transitions
Framer Motion
With tRPC
With tRPC + React Query
Monorepo basic
Monorepo basic (with lazy loading)
Monorepo with React Query
AI/LLM: This documentation page is available in plain markdown format at/router/latest/docs/guide/navigation-blocking.md
Guides
On this page
Navigation Blocking
Copy page
Edit on GitHub
Previous
Route Masking
Next
Custom Search Param Serialization
On this page
How does navigation blocking work?
How do I use navigation blocking?
Hook/logical-based blocking
Component-based blocking
How can I show a custom UI?
Hook/logical-based custom UI with resolver
Hook/logical-based custom UI without resolver
Component-based custom UI
Blog
@Tan_Stack on X.com
@TannerLinsley on X.com
GitHub
YouTube
Nozzle.io - Keyword Rank Tracker
Ethos
Tenets
Privacy Policy
Terms of Service
© 2026 TanStack LLC
Partners
Become a Partner
Gold
Silver
Bronze