Routing

Routing in Gravity depends on your architecture:

Next.js

  • Routing is file-based inside the /app directory.

  • Each folder or file in /app becomes a route automatically.

  • Layouts, server actions, and views can be co-located for simpler imports and faster development.

  • Permissions and private routes can be implemented using middleware or wrapper components around page components.

  • Adding a new route is as simple as adding a new file.

Node.js

  • Routing is handled client-side with react-router-dom.

  • All routes are defined in /client/src/routes and should be imported in /client/src/app/app.js.

Defining a New Route (Node.js)

Routes are defined in their respective file inside /client/src/routes. To add a new route, import the View component and add a new object to the route array.

  {
    path: '/account/password',
    view: Password,
    layout: 'app',
    permission: 'user',
    title: 'Your Password'
  },

Public routes without a permission (such as the auth pages) are generated using the standard <Route> component included with React Router.

Props

name

description

title

page title

string

layout

name of view layout component

string

display

view component with child

function

Gravity also contains a <PrivateRoute> component that enables you to protect routes with a user permission. <PrivateRoute> accepts an optional permission prop.

Code Splitting

If you would like to introduce route splitting to create separate bundles in your application, you can do so by simply lazy loading the view in the route file.

circle-exclamation

Last updated