Menu
Coddy logo textTech

Zusammenfassung: Server & Client

Teil des Abschnitts Next.js Essentials der React-Journey von Coddy — Lektion 22 von 47.

challenge icon

Aufgabe

Mittel

Kapitelzusammenfassung: Ziehen Sie die Server/Client-Grenze selbst.

Die Seite listet Gerichte auf dem Server auf, platziert aber auch ein onClick direkt auf einen Button, sodass die App überhaupt nicht rendert. Beheben Sie das, ohne die Seite als Client-Komponente zu markieren:

  1. Bauen Sie in components/OpenHours.jsx eine Client-Komponente ('use client' in Zeile 1), die einen open-Boolean im State hält und einen Button mit id="toggle" rendert. Sein Text muss Show hours sein, wenn er geschlossen ist, und Hide hours, wenn er geöffnet ist.
  2. Wenn geöffnet, rendert sie auch ein <p> mit id="hours" und dem Text Open 9am-5pm. Wenn geschlossen, darf dieser Absatz nicht existieren.
  3. Ersetzen Sie in app/page.jsx den fehlerhaften Button und den immer sichtbaren Absatz durch <OpenHours />, importiert aus '../components/OpenHours'. Die Überschrift und die Gerichteliste bleiben genau so, wie sie sind: Die Seite bleibt eine Server-Komponente.

Probier es selbst

import './globals.css';

export const metadata = {
    title: 'My App',
};

export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}

Alle Lektionen in Next.js Essentials