ホーム > react-server > How to Set Up Routing in react-server
react-server

How to Set Up Routing in react-server

Thank you for your continued support.
This article contains advertisements that help fund our operations.

A summary of how to set up routing in the react-server framework.

How to Configure Routing

File-Based Routing

File-based routing is a method where routing is determined by the directory structure and file names.

Previously, this was often referred to as Dynamic routing, but now it seems to be commonly called file-system routing.

react-server.config.mjs

Create this file in the root directory:

export default {
  root: "pages",
}

pages/index.jsx

export default function App() {
  return <h1>Hello World</h1>
}

Local Server Command

npx react-server

If you can access and view the page at http://localhost:3000, then everything is working correctly.

How to Use

It appears that both the traditional Pages Router and the App Router styles are supported.

Since I find the pages-based approach easier to understand, I structured my directories as follows:

Directory Structure

react server routing directory

Result

With this setup, the following pages can be displayed:

  • http://localhost:3000
  • http://localhost:3000/about
  • http://localhost:3000/posts
  • http://localhost:3000/posts/1 (Dynamic parameter page)

index.jsx or page.jsx as the Index Route

An index route refers to the default route page corresponding to a directory.

In this framework, pages/posts.jsx and pages/posts/index.jsx generate the same routing result.

From what I recall, with simple HTML structures, there was a distinction between paths ending with / and those without /. However, in this framework, URLs are standardized without the trailing /, and accessing a URL with / at the end does not result in a 404 but instead redirects properly.

How to Use Parameters

By naming the file [id].jsx, you can use parameters, which are accessible as props with the name id.

pages/posts/[id].jsx

export default function Post({ id }) {
  return <h1>Post ID: {id}</h1>
}

When accessing http://localhost:3000/posts/1, the following is displayed:

Post ID: 1

Additionally, using the App Router style:

pages/posts/[id]/index.jsx will also work the same way.

How to Use Multiple Parameters

By naming the file [id]-[name].jsx with a - separator:

export default function Post({ id, name }) {
  return (
    <h1>
      Post ID: {id}
      {name}
    </h1>
  )
}

You can use props in the same way.

If you access http://localhost:3000/posts/1-Name, the parameters will be correctly parsed.

By the way, if you want a route like http://localhost:3000/posts/1/Name,
you should structure your directories as follows:

pages/posts/[id]/[name]/index.jsx

The method to access the parameters via props remains the same.

I hope this information helps someone!

Please Provide Feedback
We would appreciate your feedback on this article. Feel free to leave a comment on any relevant YouTube video or reach out through the contact form. Thank you!