---
title: useRoutes
---
# `useRoutes`
Type declaration
```tsx
declare function useRoutes(
routes: RouteObject[],
location?: Partial | string;
): React.ReactElement | null;
```
The `useRoutes` hook is the functional equivalent of [``][routes], but it uses JavaScript objects instead of `` elements to define your routes. These objects have the same properties as normal [`` elements][route], but they don't require JSX.
The return value of `useRoutes` is either a valid React element you can use to render the route tree, or `null` if nothing matched.
```tsx
import * as React from "react";
import { useRoutes } from "react-router-dom";
function App() {
let element = useRoutes([
{
path: "/",
element: ,
children: [
{
path: "messages",
element: ,
},
{ path: "tasks", element: },
],
},
{ path: "team", element: },
]);
return element;
}
```
[routes]: ../components/routes
[route]: ../components/route