Menu
Coddy logo textTech

Recapitulação: Servidor & Cliente

Parte da seção Essenciais do Next.js do Journey de React da Coddy. Lição 22 de 47.

challenge icon

Desafio

Médio

Recapitulação do capítulo: defina você mesmo o limite entre servidor e cliente.

A página lista os pratos no servidor, mas também coloca um onClick diretamente em um botão, então o aplicativo não será renderizado. Corrija isso sem marcar a página como um componente cliente:

  1. Em components/OpenHours.jsx, crie um componente cliente ('use client' na linha 1) que mantenha um booleano open no estado e renderize um botão com id="toggle". O texto deve ser Show hours quando estiver fechado e Hide hours quando estiver aberto.
  2. Quando estiver aberto, ele também renderiza um <p> com id="hours" e o texto Open 9am-5pm. Quando estiver fechado, esse parágrafo não deve existir.
  3. Em app/page.jsx, substitua o botão quebrado e o parágrafo sempre visível por <OpenHours />, importado de '../components/OpenHours'. O título e a lista de pratos permanecem exatamente como estão: a página continua sendo um componente servidor.

Experimente você mesmo

import './globals.css';

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

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

Todas as lições de Essenciais do Next.js