Menu
Coddy logo textTech

Rückblick: Server & Client

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

challenge icon

Aufgabe

Mittel

Kapitelrückblick: Ziehe die Server-/Client-Grenze selbst.

Die Seite listet die Gerichte auf dem Server auf, setzt aber auch direkt ein onClick auf eine Schaltfläche, sodass die App überhaupt nicht gerendert wird. Behebe das ohne, die Seite als Client-Komponente zu markieren:

  1. Erstelle in components/OpenHours.jsx eine Client-Komponente ('use client' in Zeile 1), die einen booleschen Wert open im State speichert und eine Schaltfläche mit id="toggle" rendert. Ihr Text muss Show hours sein, wenn sie geschlossen ist, und Hide hours, wenn sie geöffnet ist.
  2. Wenn sie geöffnet ist, rendert sie außerdem ein <p> mit id="hours" und dem Text Open 9am-5pm. Wenn sie geschlossen ist, darf dieser Absatz nicht existieren.
  3. Ersetze in app/page.jsx die fehlerhafte Schaltfläche und den immer sichtbaren Absatz durch <OpenHours />, importiert aus '../components/OpenHours'. Die Überschrift und die Gerichteliste bleiben exakt unverändert: 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