Menu
Coddy logo textTech

Resumen: Servidor y Cliente

Parte de la sección Esenciales de Next.js del Journey de React de Coddy — lección 22 de 47.

challenge icon

Desafío

Intermedio

Recapítulo del capítulo: traza tú mismo la frontera entre servidor/cliente.

La página enumera platillos en el servidor, pero también coloca un onClick directamente en un botón, por lo que la aplicación no se renderizará en absoluto. Arréglalo sin marcar la página como un componente de cliente:

  1. En components/OpenHours.jsx, construye un componente de cliente ('use client' en la línea 1) que mantenga un booleano open en el estado y renderice un botón con id="toggle". Su texto debe ser Show hours cuando esté cerrado y Hide hours cuando esté abierto.
  2. Cuando esté abierto, también renderiza un <p> con id="hours" y el texto Open 9am-5pm. Cuando esté cerrado, ese párrafo no debe existir.
  3. En app/page.jsx, reemplaza el botón roto y el párrafo siempre visible con <OpenHours />, importado desde '../components/OpenHours'. El encabezado y la lista de platillos permanecen exactamente como están: la página sigue siendo un componente de servidor.

Pruébalo tú mismo

import './globals.css';

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

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

Todas las lecciones de Esenciales de Next.js