useRouteData
Reads data provided by a server component via provideRouteData(). This enables server components to pass serializable data to client components without prop drilling.
Import
import { useRouteData } from "catmint/hooks";
Signature
function useRouteData<T>(): T;
Parameters
This hook takes no parameters. The generic type parameter T specifies the expected shape of the route data.
Return Value
Returns the route data of type T that was provided by a parent server component via provideRouteData().
Throws an error if no route data has been provided. Ensure the server component calls provideRouteData() to supply data.
Examples
Reading route data
// DashboardClient.client.tsx
import { useRouteData } from "catmint/hooks";
interface DashboardStats {
totalUsers: number;
activeUsers: number;
revenue: number;
}
function DashboardClient() {
const stats = useRouteData<DashboardStats>();
return (
<div>
<p>Total users: {stats.totalUsers}</p>
<p>Active users: {stats.activeUsers}</p>
<p>Revenue: ${stats.revenue}</p>
</div>
);
}
Server component providing data
// page.tsx (server component)
import { provideRouteData } from "catmint";
import { DashboardClient } from "./DashboardClient.client";
export default async function DashboardPage() {
const stats = await db.getDashboardStats();
provideRouteData(stats);
return <DashboardClient />;
}
