Capítulo 188 de 456
Client Component hook for programmatic route changes (push, replace, refresh, prefetch, back, forward). Prefer <Link> for navigation and reserve useRouter for cases that need imperative control.
revalidatePath/revalidateTag para isso).onInvalidate dispara quando o dado prefetchado fica stale.'use client'
import { useRouter } from 'next/navigation'
export default function Page() {
const router = useRouter()
return (
<button type="button" onClick={() => router.push('/dashboard')}>
Dashboard
</button>
)
}
push, disparada por um handler de evento.'use client'
import { useRouter } from 'next/navigation'
export default function Page() {
const { bfcacheId } = useRouter()
return <form key={bfcacheId}>{/* ... */}</form>
}
bfcacheId como key do React para resetar estado em navegações novas mas preservá-lo em back/forward.javascript: URLs são executadas no contexto da página).bfcacheId como primeira opção: prefira resetar estado explicitamente num handler (onSubmit) ou derivar uma key dos próprios dados; bfcacheId é último recurso, ex. migração de código legado.next/navigation, não next/router (mudança do Pages Router).pathname e query do router antigo foram substituídos por usePathname() e useSearchParams().<Link> já faz prefetch automático ao entrar no viewport; router.prefetch é para controle manual.cacheComponents ativo, bfcacheId ajuda a preservar estado de Client Component via <Activity> em navegações back/forward.router.refresh() não faz.