ๅธƒๅฑ€๏ผˆLayout๏ผ‰

ๅœจๅฎž็Žฐ่ทฏ็”ฑๆ—ถ๏ผŒไธๅŒ็š„่ทฏ็”ฑ้€šๅธธๅ…ฑไบซไธ€ไธชๅ…ฑๅŒ็š„้กต็œ‰ใ€้กต่„šๅ’Œ่œๅ•็ณป็ปŸใ€‚ๆˆ‘ไปฌ็งฐๅ…ฌๅ…ฑ้ƒจๅˆ†ไธบๅธƒๅฑ€๏ผˆlayout๏ผ‰ใ€‚

ๅผ€ๅ‘ไบบๅ‘˜ๅฏไปฅๅฐ†ๆ‰€ๆœ‰่ฟ™ไบ›ๆๅ–ๅˆฐ <Header>ใ€<Footer> ๅ’Œ <Menu> ็ป„ไปถไธญ๏ผŒๅนถๆ‰‹ๅŠจๅฐ†ๅฎƒไปฌๆทปๅŠ ๅˆฐๆฏไธช้กต้ข็ป„ไปถไธญ๏ผŒไฝ†่ฟ™ๆ˜ฏ้‡ๅคไธ”ๅฎนๆ˜“ๅ‡บ้”™็š„ใ€‚ ็›ธๅ๏ผŒๆˆ‘ไปฌๅฏไปฅไฝฟ็”จๅธƒๅฑ€๏ผˆLayout๏ผ‰ๆฅ่‡ชๅŠจ้‡็”จๅ…ฌๅ…ฑ้ƒจๅˆ†ใ€‚

ไพ‹ๅญ

ๅ‡่ฎพๆˆ‘ไปฌๅธŒๆœ›ๆˆ‘ไปฌ็š„็ฝ‘็ซ™็œ‹่ตทๆฅๅƒ่ฟ™ๆ ท๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Header                                            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Menu    โ”‚ <ROUTE_SPECIFIC_CONTENT>                โ”‚
โ”‚ - home  โ”‚                                         โ”‚
โ”‚ - about โ”‚                                         โ”‚
โ”‚         โ”‚                                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Footer                                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆˆ‘ไปฌๅฏไปฅ็”จ่ฟ™ไบ›ๆ–‡ไปถๅฎšไน‰ไธŠ่ฟฐๅ†…ๅฎน๏ผš

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ header.tsx         # Header component implementation
โ”‚   โ”œโ”€โ”€ footer.tsx         # Footer component implementation
โ”‚   โ””โ”€โ”€ menu.tsx           # Menu component implementation
โ””โ”€โ”€ routes/
    โ”œโ”€โ”€ layout.tsx         # Layout implementation using: <Header>, <Footer>, and <Menu>
    โ”œโ”€โ”€ about/
    โ”‚   โ””โ”€โ”€ index.tsx      # https://example.com/about
    โ””โ”€โ”€ index.tsx          # https://example.com

็ป„ไปถๅฎž็Žฐ

// File: src/components/header.tsx
export default component$(() => {
  return <>Header</>;
});
// File: src/components/footer.tsx
export default component$(() => {
  return <>Footer</>;
});
// File: src/components/menu.tsx
export default component$(() => {
  return (
    <ul>
      <li>home</li>
      <li>about</li>
    </ul>
  );
});
// File: src/routes/layout.tsx
export default component$(() => {
  return (
    <>
      <Header />
      <Menu />
      <Slot/> {/* <== This is where the route will be inserted */}
      <Footer />
    </>
  );
});
// File: src/routes/index.tsx
export default component$(() => {
  return <>Home</>;
});
// File: src/routes/about/index.tsx
export default component$(() => {
  return <>About</>;
});
Made with โค๏ธ by