Menu
Coddy logo textTech

Podsumowanie: serwer i klient

Część sekcji Podstawy Next.js ścieżki React w Coddy. Lekcja 22 z 47.

challenge icon

Wyzwanie

Średni

Podsumowanie rozdziału: samodzielnie wyznacz granicę między serwerem a klientem.

Strona wyświetla dania na serwerze, ale umieszcza też onClick bezpośrednio na przycisku, więc aplikacja w ogóle się nie renderuje. Napraw to, nie oznaczając strony jako komponentu klienckiego:

  1. W components/OpenHours.jsx utwórz komponent kliencki ('use client' w linii 1), który przechowuje w stanie wartość logiczną open i renderuje przycisk z id="toggle". Gdy jest zamknięty, jego tekst musi brzmieć Show hours, a gdy jest otwarty — Hide hours.
  2. Gdy jest otwarty, renderuje również element <p> z id="hours" i tekstem Open 9am-5pm. Gdy jest zamknięty, ten akapit nie może istnieć.
  3. W app/page.jsx zastąp niedziałający przycisk i zawsze widoczny akapit elementem <OpenHours />, zaimportowanym z '../components/OpenHours'. Nagłówek i lista dań pozostają dokładnie takie same: strona nadal jest komponentem serwerowym.

Spróbuj swoich sił

import './globals.css';

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

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

Wszystkie lekcje w sekcji Podstawy Next.js