Skip to main content

Archive

Show more

Nextjs Imperative Routing

Next.js - Imperative Routing

Imperative routing in Next.js allows for programmatic navigation between pages using JavaScript code, offering more control and flexibility.


1. Router Object

The Router object in Next.js provides methods for imperative routing, allowing developers to navigate programmatically.

import { useRouter } from 'next/router';

function MyComponent() {
    const router = useRouter();

    const handleClick = () => {
        router.push('/about');
    };

    return (
        <button onClick={handleClick}>Go to About Page</button>
    );
}

export default MyComponent;

In this example, the router.push method is used to navigate to the /about page imperatively when the button is clicked.


2. Route Parameters

Next.js also supports imperative routing with route parameters, allowing for dynamic navigation based on user input or application state.

import { useRouter } from 'next/router';

function DynamicPage() {
    const router = useRouter();

    const handleClick = () => {
        router.push('/posts/[id]', '/posts/1');
    };

    return (
        <button onClick={handleClick}>Go to Post 1</button>
    );
}

export default DynamicPage;

In this example, the router.push method is used to navigate to the dynamic route /posts/[id] with the parameter 1 when the button is clicked.


3. Conditional Routing

Conditional routing allows for dynamic navigation based on application state or user input.

import { useRouter } from 'next/router';

function ConditionalPage() {
    const router = useRouter();

    const handleConditionalNavigation = (path) => {
        if (path === 'home') {
            router.push('/');
        } else if (path === 'about') {
            router.push('/about');
        }
    };

    return (
        <div>
            <button onClick={() => handleConditionalNavigation('home')}>Go Home</button>
            <button onClick={() => handleConditionalNavigation('about')}>Go to About</button>
        </div>
    );
}

export default ConditionalPage;

In this example, the handleConditionalNavigation function conditionally navigates to different pages based on the provided path.


Conclusion

Imperative routing in Next.js provides a powerful way to navigate between pages programmatically. By utilizing the Router object and its methods, developers can implement dynamic navigation logic and enhance user experience in their applications.

Comments