Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

File-Based Routing in Next.js

1. Introduction

Next.js is a powerful React framework that offers file-based routing. This allows developers to create routes based on the file structure, making it intuitive and efficient.

2. Key Concepts

  • Pages: Each file in the `pages` directory corresponds to a route.
  • Dynamic Routing: Create dynamic routes using square brackets.
  • Nested Routes: Organize related routes by creating nested folders.

3. Setup

Begin with creating a new Next.js project. Run the following command:

npx create-next-app my-next-app

4. Routing

The routing in Next.js is handled automatically based on the files present in the `pages` directory. Each file represents a route:

pages/
├── index.js          // -> /
├── about.js          // -> /about
├── contact.js        // -> /contact
└── blog/
    └── index.js      // -> /blog

5. Dynamic Routes

To create dynamic routes, use square brackets in the filename:

pages/
└── blog/
    └── [id].js       // -> /blog/1, /blog/2, etc.

Inside `[id].js`, use the `useRouter` hook to access the dynamic segment:

import { useRouter } from 'next/router';

        const Post = () => {
            const router = useRouter();
            const { id } = router.query;

            return 

Post: {id}

; }; export default Post;

6. Best Practices

  • Organize your `pages` directory logically, grouping related files.
  • Use dynamic routes wisely to avoid excessive complexity.
  • Keep your components modular and reusable.

7. FAQ

What is file-based routing?

File-based routing is a method of routing where the structure of the application files determines the URL structure.

Can I create nested routes?

Yes, by creating folders within the `pages` directory, you can establish nested routes.

How do I handle 404 pages?

Create a `404.js` file in the `pages` directory to customize the 404 error page.