ๅตŒๅฅ—ๅธƒๅฑ€๏ผˆNested Layout๏ผ‰

ๅคงๅคšๆ•ฐๆ—ถๅ€™๏ผŒๅพˆ้€‚ๅˆๅฐ†ๅธƒๅฑ€็›ธไบ’ๅตŒๅฅ—ใ€‚ ไธ€ไธช้กต้ข็š„ๅ†…ๅฎนๅฏไปฅๅตŒๅฅ—ๅœจ่ฎธๅคšๅธƒๅฑ€ไธญใ€‚

src/
โ””โ”€โ”€ routes/
    โ”œโ”€โ”€ layout.tsx           # Parent layout
    โ””โ”€โ”€ about/
        โ”œโ”€โ”€ layout.tsx       # Child layout
        โ””โ”€โ”€ index.tsx        # https://example.com/about

ๅœจไธŠ้ข็š„ไพ‹ๅญไธญ๏ผŒๆœ‰ไธคไธชๅธƒๅฑ€ๅบ”็”จไบŽ /about ้กต้ข็ป„ไปถใ€‚

  1. src/routes/layout.tsx
  2. src/routes/about/layout.tsx

ๅœจ่ฟ™็งๆƒ…ๅ†ตไธ‹๏ผŒๅคšไธชlayoutsๅฐ†็›ธไบ’ๅตŒๅฅ—ใ€‚

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚       src/routes/layout.tsx                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚    src/routes/about/layout.tsx           โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ src/routes/about/index.tsx         โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚                                    โ”‚  โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚  โ”‚
โ”‚  โ”‚                                          โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
// File: src/routes/layout.tsx
export default component$(() => {
  return (
    <main>
      <Slot /> {/* <== Child layout/route inserted here */}
    </main>
  );
});
// File: src/routes/about/layout.tsx
export default component$(() => {
  return (
    <section>
      <Slot /> {/* <== Child layout/route inserted here */}
    </section>
  );
});
// File: src/routes/about/index.tsx
export default component$(() => {
  return <h1>About</h1>;
});

ไธŠ้ขไพ‹ๅญไผšๆธฒๆŸ“ไธ‹้ข็š„HTML๏ผš

<main>
  <section>
    <h1>About</h1>
  </section>
</main>

้ป˜่ฎคๆƒ…ๅ†ตไธ‹๏ผŒ้กต้ขๅฐ†้€š่ฟ‡ๅ‘ไธŠ้€’ๅฝ’ๆฏไธช็›ฎๅฝ•็›ดๅˆฐๅˆฐ่พพ /src/routes ็›ฎๅฝ•ๆฅๅˆ›ๅปบๅ…ถๅธƒๅฑ€ๅ †ๆ ˆใ€‚ ๅฆ‚ๆžœๅœจไปปไฝ•ๆ—ถๅ€™ๆƒณ่ฎฉๅฎƒๅœๆญขๅ‘ไธŠ้€’ๅฝ’็›ฎๅฝ•๏ผŒๆ‚จๅฏไปฅไฝฟ็”จ top layout ๅŠŸ่ƒฝใ€‚

Made with โค๏ธ by