АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗jsnxPmLtNL 42 of 57 menu

Укладзеныя макеты ў NextJS

Як вы ведаеце, у тэчцы /app у файле /layout.jsx размяшчаецца асноўны макет сайта.

Пры жаданні, аднак, ва ўкладзеных тэчках можна ствараць свае макеты. У гэтым выпадку кантэнт старонкі будзе спачатку ўстаўляцца ва ўкладзены макет, а затым атрымаўшыся вынік будзе ўстаўляцца ў асноўны макет.

Давайце паспрабуем на практыцы. Хай наш асноўны макет мае наступны выгляд:

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

Давайце зробім яшчэ адзін, укладзены макет для ўсіх кантэнтаў з тэчкі /users:

export default function UsersLayout({children}) { return ( <div className="info"> message for all users </div> <div className="content"> {children} </div> ); }

Як вы бачыце, у гэтым макеце мы не паказваем асноўныя тэгі старонкі, так як яны ўжо ёсць у нашым асноўным макеце сайта.

Давайце зробім таксама файл з кантэнтам для паказу карыстача:

export default function User() { return <> <h1>User</h1> <p> user description </p> </>; }

Пасля гэтых маніпуляцый наша файлавая структура стане выглядаць так:

  • /app/
    • layout.jsx
    • /users/
      • layout.jsx
      • /show/
        • page.jsx

Цяпер, калі звярнуцца па адпаведным URL, NextJS сабере ўсё разам і ў браўзэры мы атрымаем наступны выніковы код HTML код:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> message for all users </div> <h1>User</h1> <p> user description </p> </main> <footer> footer </footer> </body> </html>

Зрабіце на сайце раздзел з карыстачамі і раздзел з пастамі. Зрабіце ў кожным раздзеле свой макет, які будзе насіліць ад асноўнага макета сайта.

byru