Capítulo 156 de 456
connection() sinaliza que a renderização deve esperar por uma requisição real do usuário antes de continuar, útil para componentes que produzem saída diferente por request (Math.random(), new Date()) sem usar Request-time APIs como cookies/headers.
await connection(): retorna Promise<void>; interrompe o prerendering até chegar uma requisição real; código após ele só roda em request time.unstable_noStore: é a API alinhada com o futuro do Next.js.better-sqlite3) que completam a query durante o prerender; connection() força exclusão dessa query do prerender.io() para excluir conteúdo do static shell, pois também pode ser cacheado/prefetched; use connection() só quando a renderização realmente precisa esperar um request real.import { connection } from 'next/server'
export default async function Page() {
await connection() // prerendering stops here
const rand = Math.random()
return <span>{rand}</span>
}
import { connection } from 'next/server'
import Database from 'better-sqlite3'
const db = new Database('app.db')
export async function getVisitorCount() {
await connection()
return db.prepare('SELECT value FROM counters WHERE name = ?').get('visitors')
}
| Item | Valor |
|---|---|
| Assinatura | function connection(): Promise<void> |
| Parâmetros | nenhum |
| Retorno | Promise void, não deve ser consumida |
connection() só é necessária quando renderização dinâmica é obrigatória e nenhuma Request-time API comum está sendo usada.connection() é excluído do prerender junto com o resto de sua saída.io() primeiro; connection() é para o caso específico de esperar um request real.connection.