- initial data:
"use client"
import {useQuery} from "@tanstack/react-query"
import {getProducts} from "@/services/get-products"
export async function Products({products}){
await {data}= useQuery({
queryKey:["products"],
queryFn:getProducts,
initialData:products
})
return(
<div>
<h1>Products</h1>
{
data.map(product=>(
<div>
<h2>{product.name}</h2>
</div>
))
}
</div>
)
}
- Server component:
import {dehydrate, HydrateBoundary} from "@tanstack/react-query"
import {getQueryClient} from "./getQueryClient"
import {getPosts} from "@/services/get-post"
export async function PostsPage(){
const queryClient = getQueryClient()
await queryClient.prefetchQuery({
queryKey:["posts"],
queryFn:getPosts
})
return(
<HydrateBoundary state={dehydrate(queryClient)}>
<Post />
</HydrateBoundary>
)
}