Prefetching is a way to preload a route in the background before the user visits it.
two ways
<Link> component
router.prefetch() - The useRouter
hook can be used to prefetch routes programmatically.
Next.js has an in-memory client-side cache called the Router Cache. As users navigate around the app, the React Server Component Payload of prefetched route segments and visited routes are stored in the cache.
This means on navigation, the cache is reused as much as possible, instead of making a new request to the server - improving performance by reducing the number of requests and data transferred.
...
https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating