
- Next.js - Home
- Next.js - Overview
- Next.js - Project Setup
- Next.js - Folder Structure
- Next.js - App Router
- Next.js - Page Router
- Next.js Features
- Next.js - Pages
- Next.js - Data Fetching
- Next.js - ISR
- Next.js - Static File Serving
- Next.js - Pre-Rendering
- Next.js - Partial Pre Rendering
- Next.js - Server Side Rendering
- Next.js - Client Side Rendering
- Next.js Routing
- Next.js - Routing
- Next.js - Nested Routing
- Next.js - Dynamic Routing
- Next.js - Parallel Routing
- Next.js - Imperative Routing
- Next.js - Shallow Routing
- Next.js - Intercepting Routes
- Next.js - Redirecting Routes
- Next.js - Navigation and Linking
- Next.js Configuration
- Next.js - TypeScript
- Next.js - Environment Variables
- Next.js - File Conventions
- Next.js - ESLint
- Next.js API & Backend
- Next.js - API Routes
- Next.js - Dynamic API Routes
- Next.js - Route Handlers
- Next.js - API MiddleWares
- Next.js - Response Helpers
- Next.js API Reference
- Next.js - CLI Commands
- Next.js - Functions
- Next.js - Directives
- Next.js - Components
- Next.js - Image Component
- Next.js - Font Component
- Next.js - Head Component
- Next.js - Form Component
- Next.js - Link Component
- Next.js - Script Component
- Next.js Styling & SEO
- Next.js - CSS Support
- Next.js - Global CSS Support
- Next.js - Meta Data
- Next.js Advanced Topics
- Next.js - Error Handling
- Next.js - Server Actions
- Next.js - Fast Refresh
- Next.js - Internationalization
- Next.js - Authentication
- Next.js - Session Management
- Next.js - Authorization
- Next.js - Caching
- Next.js - Data Caching
- Next.js - Router Caching
- Next.js - Full Route Caching
- Next.js - Request Memoization
- Next.js Performance Optimization
- Next.js - Optimizations
- Next.js - Image Optimization
- Next.js - Lazy Loading
- Next.js - Font Optimization
- Next.js - Video Optimization
- Next.js - Script Optimization
- Next.js - Memory Optimization
- Next.js - Using OpenTelemetry
- Next.js - Package Bundling Optimization
- Next.js Testing
- Next.js - Testing
- Next.js - Testing with Jest
- Next.js - Testing with Cypress
- Next.js - Testing with Vitest
- Next.js - Testing with Playwright
- Next.js Debugging & Deployment
- Next.js - Debugging
- Next.js - Deployment
- Next.js Useful Resources
- Next.js - Interview Questions
- Next.js - Quick Guide
- Next.js - Useful Resources
- Next.js - Discussion
Next.js - useRouter Function
In Next.js useRouter function is used to access router object in Next.js. In this chapter we will learn what is useRouter function, how to use it, syntax and example usage of useRouter method.
Next.js useRouter Method
The useRouter method in Next.js is used to interact with router object by accessing routing-related data and methods. The router object can access the current route, pathname, and query parameters. Also this object can be used to programmatically navigate between different routes in an application.
Syntax
Following shows basic usage syntax of useRouter function.
// Import the library import { useRouter } from 'next/router'; const MyComponent = () => { // Receive the router object const router = useRouter(); // Display the name of current route return <div>Current Route: {router.pathname}</div>; };
- Arguments: The useRouter method doesn't take any arguments.
- Return Type: The useRouter method return a router object which can interact with the Next.js router and access routing-related data and methods.
Example of Using useRouter
In the example code below, we implemented a product ordering feature to the product page we created in the previous chapters. On clicking the button, user will get a confirmation of the order and redirect them to home page using 'useRoute' hook.
"use client"; import { useRouter } from "next/navigation"; import { PageProps } from "next/dist/shared/lib/router/utils/page-props"; export default function ProductPage({ params }: PageProps) { const router = useRouter(); const handleClick = () =>{ alert("Order Placed..."); // Navigate to home page after placing order router.push("/"); }; return ( <div> <h1>Product {params.id}</h1> <p>This is the product page for item {params.id}</p> <button onClick={handleClick}>Order Item</button> </div> ); }
Output
In the output, after placing order user is getting redirected to home page.
