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: desenhe a fronteira entre servidor/cliente você mesmo.

A página lista os pratos no servidor, mas ela também coloca um onClick direto em um botão, o que faz com que o app não renderize. Corrija isso sem marcar a página como um client component:

  1. Em components/OpenHours.jsx, crie um client component ('use client' na linha 1) que mantém um booleano open no estado e renderiza um botão com id="toggle". Seu texto deve ser Show hours quando fechado e Hide hours quando aberto.
  2. Quando aberto, ele também renderiza um <p> com id="hours" e o texto Open 9am-5pm. Quando 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 server component.

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