Partes del sitio en componentes en NextJS

En la lección anterior escribimos el texto de las partes del sitio directamente en el archivo de diseño:

app/layout.jsxexport default function RootLayout({children}) {
  return (
    <html lang="en">
      <body>
        <header>
          header
        </header>
        <main>
          {children}
        </main>
        <footer>
          footer
        </footer>
      </body>
    </html>
  );
}

Sin embargo, esto puede ser inconveniente en el caso de que las partes del sitio contengan mucho código y texto. Por lo tanto, normalmente las partes del sitio se separan en archivos individuales de componentes.

Como ejemplo, separemos el encabezado del sitio en un componente independiente. Creemos el archivo correspondiente:

comp/header/header.jsxexport default function Header() {
  return <>
    header
  </>;
}

Importemos nuestro componente en el archivo de diseño:

app/layout.jsximport Header from '@/comp/header/header.jsx';

export default function RootLayout({children}) {
  
}

Mostremos el texto de nuestro componente usando la etiqueta con su nombre:

app/layout.jsximport Header from '@/comp/header/header.jsx';

export default function RootLayout({children}) {
  return (
    <html lang="en">
      <body>
        <header>
          <Header />
        </header>
        <main>
          {children}
        </main>
        <footer>
          footer
        </footer>
      </body>
    </html>
  );
}
Задание 1

Cree componentes separados para el encabezado y el pie de página del sitio.