Passaggio 3: Le pagine dei piatti
Fa parte della sezione Nozioni essenziali di Next.js del percorso React di Coddy. Lezione 41 di 47.
Sfida
MedioDai una pagina a ogni piatto.
- In
app/page.jsx, racchiudi il contenuto di ogni scheda in un<Link>conid={'link-' + dish.slug}ehref={'/menu/' + dish.slug}. - Completa il file
app/menu/[slug]/page.jsx:const { slug } = await params;, quindiawait getDish(slug). - Se non c'è alcun piatto, chiama
notFound()danext/navigation. - Altrimenti, visualizza un
<article className="detail">con un<div id="dish-thumb" className="detail-thumb">(emoji + stile con gradiente) e, accanto,<h1 id="dish-name">,<p id="dish-stars" className="stars">che mostra'★'.repeat(dish.rating),<p id="dish-desc">e<span id="dish-price" className="price">. - Completa il file
app/menu/[slug]/not-found.jsx, il cui elemento esterno haid="dish-missing"eclassName="empty".
Provalo tu
import Link from 'next/link';
import './globals.css';
export const metadata = {
title: {
default: 'Coddy Eats',
template: '%s | Coddy Eats',
},
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<nav className="nav">
<Link className="brand" href="/">Coddy Eats</Link>
<Link id="nav-menu" href="/">Menu</Link>
<Link id="nav-desserts" href="/?category=dessert">Desserts</Link>
</nav>
<div className="container">
{children}
</div>
</body>
</html>
);
}Tutte le lezioni di Nozioni essenziali di Next.js
4Server e Client
Due tipi di componentiLeggere l'erroreLa riga 'use client'Mantieni piccole le parti ClientServer dentro ClientRiepilogo: Server e Client7Navigazione lato client
Il link attivoRouting programmaticoFiltrare con l'URLGestori delle routeRiepilogo: navigazione2Routing e collegamenti
Le cartelle sono routeRoute annidateCollegare le pagineRoute dinamichePagine non trovateRiepilogo: routing5Dati sul server
Componenti asincroniIn attesa dei parametri della routeDue fetch contemporaneiStati di caricamentoGestione degli erroriRiepilogo: recupero dei dati8Progetto: Coddy Eats
Passaggio 1: La struttura