Étape 2 : Grille du menu
Fait partie de la section L'essentiel de Next.js du Journey React de Coddy — leçon 40 sur 47.
Défi
FacileRemplissez le menu dans app/page.jsx.
- Rendez
Homeasyncet utilisezawait getDishes()depuis../lib/menu.js. - Conservez le hero, et après celui-ci, affichez un
<ul className="grid">avec un<li className="card">par plat (key= le slug). - Chaque carte contient un
<div className="thumb">avecid={'thumb-' + dish.slug}, l'emojidu plat comme contenu, etstyle={{ background: dish.gradient }}. - Ensuite un
<div className="card-body">contenant un<h2 className="card-title">avecid={'name-' + dish.slug}et le nom, un<p className="card-desc">avec la description, et un<span className="price">avecid={'price-' + dish.slug}affichant$suivi du prix.
Essayez vous-même
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>
);
}Toutes les leçons de L'essentiel de Next.js
1Pourquoi Next.js
Ce que Next.js apporteLe dossier AppVotre première pageRécapitulatif : Pourquoi Next.js2Routage et liens
Les dossiers sont des routesRoutes imbriquéesLier des pagesRoutes dynamiquesPages non trouvéesRécapitulatif : Routage