Delovi sajta u komponentama u NextJS-u

U prethodnoj lekciji smo pisali tekst delova sajta direktno u fajlu layout-a:

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

Ovo, međutim, može biti nezgodno u slučaju kada delovi sajta sadrže puno koda i teksta. Zbog toga se delovi sajta obično izdvajaju u zasebne fajlove komponenata.

Hajde da za primer izdvojimo header sajta u zasebnu komponentu. Napravimo odgovarajući fajl:

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

Importujmo našu komponentu u fajl sa layout-om:

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

export default function RootLayout({children}) {
  
}

Prikažimo tekst naše komponente pomoću taga sa njenim imenom:

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

Napravite zasebne komponente za header i footer sajta.