Deler av nettsiden i komponenter i NextJS

I forrige leksjon skrev vi teksten fra deler av nettsiden direkte i layout-filen:

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

Dette kan imidlertid være upraktisk når deler av nettsiden inneholder mye kode og tekst. Derfor plasserer man vanligvis deler av nettsiden i separate filer med komponenter.

La oss som et eksempel flytte headeren på nettsiden til en egen komponent. La oss lage en tilhørende fil:

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

Importer komponenten vår i layout-filen:

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

export default function RootLayout({children}) {
  
}

La oss vise teksten fra komponenten vår ved hjelp av en tag med dens navn:

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

Lag separate komponenter for header og footer på nettsiden.