UI di caricamento ed errori

loading.tsx, error.tsx, not-found.tsx, Redbox nella console e Dev Overlay.

Gli stati di caricamento e gli error boundary sono renderizzati nella console. Definiscili per ogni segmento di route con loading.tsx e error.tsx.

Interfaccia di caricamento

Aggiungi loading.tsx per mostrare un fallback mentre una pagina è sospesa.

app/sessions/[id]/loading.tsxtsx
import { Spinner } from "@textjs/app";export default function Loading() {  return <Spinner variant="dots" label="Loading session…" />;}
Dal vivo56×10 · booting Turbolog…tsx
preview://spinner:1
<Box className="flex-col gap-1 p-1">  <Spinner variant="dots" label="Loading session…" />  <Spinner variant="pulse" label="Streaming frames" /></Box>

Errori

Aggiungi error.tsx per intercettare gli errori di rendering. Riceve l’errore e una funzione reset.

app/sessions/[id]/error.tsxtsx
import { Text, useInput, type ErrorComponentProps } from "@textjs/app";export default function SessionError({ error, reset }: ErrorComponentProps) {  useInput((e) => e.input === "r" && reset());  return <Text color="danger">{error.message} · press r to retry</Text>;}

Pagina non trovata

Chiama notFound() per renderizzare il not-found.tsx più vicino.

import { notFound } from "@textjs/app/navigation";if (!session) notFound();

La Redbox nella console

In fase di sviluppo, gli errori non intercettati aprono un overlay nella console con il messaggio e la posizione nel codice sorgente. Correggendo il file, l’overlay si chiude.

╭─ ▼ Unhandled Runtime Error ─────────────────╮│  TypeError: Cannot read 'title'             ││  app/sessions/[id]/page.tsx (14:27)         │╰───────────────────────────── esc dismiss ───╯

Dev Overlay

In fase di sviluppo, il pulsante a pillola [▼] nell’angolo in basso a sinistra della console è il Dev Overlay. Premi F2 o Ctrl+` per aprirlo e ispezionare la route, i tempi dei frame e il layout. Disattivalo con devIndicators: false.

Modifica questa pagina su GitHub