Fetch Api React Router Loader 2025
React Router Loader Example
In React Router 6.4+, we can fetch data before the component renders using a loader
. This makes the component clean and keeps data logic outside.
🧠 Step-by-Step
- Create a loader function that fetches API data.
- Connect the loader to your route config.
- Use
useLoaderData()
to access data inside the component.
📦 Example Code:
// 📁 src/routes/Users.jsx
import { useLoaderData } from "react-router-dom";
export async function usersLoader() {
const response = await fetch("https://jsonplaceholder.typicode.com/users");
if (!response.ok) {
throw new Error("Failed to fetch users");
}
return response.json();
}
export default function UsersPage() {
const users = useLoaderData();
return (
Users List
{users.map(user => (
-
{user.name} - {user.email}
))}
);
}
🔗 Setup in Routes
// 📁 App.jsx or routes.jsx
import {
createBrowserRouter,
RouterProvider,
} from "react-router-dom";
import UsersPage, { usersLoader } from "./routes/Users";
const router = createBrowserRouter([
{
path: "/users",
element: ,
loader: usersLoader, // 🔁 Attach loader here
},
]);
export default function App() {
return ;
}
✅ Benefits
- Cleaner Components
- Better SEO-friendly rendering
- Error handling & Suspense supported