0Pricing
Vue Academy · บทเรียน

สล็อตและสล็อตแบบมีขอบเขต

ประกอบคอมโพเนนต์ที่ยืดหยุ่นด้วยสล็อตและสล็อตแบบมีขอบเขต

สล็อตและสล็อตแบบมีขอบเขต เป็นบทเรียน Vue Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Vue Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Vue Academy มีบทเรียนทั้งหมด 3 บทเรียน

สล็อตคืออะไร

สล็อต ช่วยให้คอมโพเนนต์แม่แทรกเนื้อหาลงในเทมเพลตของคอมโพเนนต์ลูกได้

  • พร็อพส์ใช้ส่งข้อมูล ส่วนสล็อตใช้ส่งมาร์กอัป
  • เหมาะสำหรับตัวครอบโครงร่าง การ์ด และหน้าต่างโมดัล
  • คอมโพเนนต์ลูกเป็นผู้กำหนดว่าเนื้อหาจะไปอยู่ที่ใด

สล็อตเริ่มต้น

คอมโพเนนต์ลูกกำหนดพื้นที่สำรองด้วยองค์ประกอบ slot สิ่งที่คอมโพเนนต์แม่นำไปใส่ระหว่างแท็กจะมาเติมในพื้นที่นี้

<!-- Card.vue (child) -->
<template>
  <div class="card">
    <slot></slot>
  </div>
</template>

การใช้สล็อตเริ่มต้น

คอมโพเนนต์แม่ส่งเนื้อหาไว้ระหว่างแท็กของคอมโพเนนต์

<!-- Parent -->
<Card>
  <h2>Title</h2>
  <p>Any content goes here.</p>
</Card>

<!-- It renders inside the card div -->

เนื้อหาสำรองของสล็อต

สล็อตสามารถกำหนดเนื้อหาสำรองที่จะแสดงเมื่อคอมโพเนนต์แม่ไม่ได้ส่งเนื้อหาใดมา

<!-- Button.vue -->
<template>
  <button>
    <slot>Click me</slot>
  </button>
</template>

<!-- <Button /> shows "Click me";
     <Button>Save</Button> shows "Save" -->

สล็อตที่มีชื่อหลายช่อง

สล็อตที่มีชื่อ ช่วยให้คอมโพเนนต์เปิดจุดแทรกเนื้อหาได้หลายจุด

<!-- Layout.vue -->
<template>
  <header><slot name="header"></slot></header>
  <main><slot></slot></main>
  <footer><slot name="footer"></slot></footer>
</template>

การเติมข้อมูลในสล็อตที่มีชื่อ

คอมโพเนนต์แม่ระบุสล็อตที่มีชื่อด้วย v-slot:name บนแท็กเทมเพลต

<Layout>
  <template v-slot:header>
    <h1>Site Title</h1>
  </template>

  <p>Main content (default slot)</p>

  <template v-slot:footer>
    <small>Copyright 2024</small>
  </template>
</Layout>

รูปแบบย่อของ v-slot

v-slot มีรูปแบบย่อคือสัญลักษณ์ #

<Layout>
  <template #header>
    <h1>Title</h1>
  </template>

  <template #footer>
    <small>Footer</small>
  </template>
</Layout>

สล็อตแบบมีขอบเขต

สล็อตแบบมีขอบเขต ช่วยให้คอมโพเนนต์ลูกส่งข้อมูลขึ้นไปยังเนื้อหาของสล็อตได้

  • คอมโพเนนต์ลูกผูกข้อมูลไว้กับองค์ประกอบสล็อต
  • คอมโพเนนต์แม่รับข้อมูลนั้นเป็น slot props
  • มีประโยชน์เมื่อคอมโพเนนต์ลูกควบคุมข้อมูล แต่คอมโพเนนต์แม่ควบคุมรูปลักษณ์

การเปิดเผยข้อมูลจากคอมโพเนนต์ลูก

คอมโพเนนต์ลูกผูกแอตทริบิวต์ไว้กับสล็อตเพื่อแบ่งปันข้อมูล

<!-- UserList.vue -->
<template>
  <li v-for="user in users" :key="user.id">
    <slot :user="user"></slot>
  </li>
</template>

การใช้ข้อมูลจากสล็อตแบบมีขอบเขต

คอมโพเนนต์แม่รับข้อมูลผ่าน v-slot

<UserList>
  <template #default="slotProps">
    {{ slotProps.user.name }}
  </template>
</UserList>

<!-- or destructure: #default="{ user }" -->

ควรใช้สล็อตแต่ละแบบเมื่อใด

คู่มือฉบับย่อ

  • สล็อตเริ่มต้น สำหรับการแทรกเนื้อหาแบบง่าย
  • สล็อตที่มีชื่อ สำหรับหลายพื้นที่ เช่น โครงร่าง
  • สล็อตแบบมีขอบเขต เมื่อคอมโพเนนต์แม่ต้องใช้ข้อมูลภายในของคอมโพเนนต์ลูก

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับสล็อต

ทบทวน: สล็อต

คุณได้เรียนรู้การกระจายเนื้อหาด้วยสล็อต

  • สล็อตเริ่มต้น แทรกมาร์กอัปจากคอมโพเนนต์แม่
  • เนื้อหาสำรองจะแสดงเมื่อไม่มีการส่งเนื้อหาใดมา
  • สล็อตที่มีชื่อ (v-slot:name และรูปแบบย่อ #) ใช้ระบุพื้นที่ต่าง ๆ
  • สล็อตแบบมีขอบเขต ส่งข้อมูลจากคอมโพเนนต์ลูกขึ้นไปยังเนื้อหาของสล็อต

ถัดไป: พื้นฐานการทำงานแบบรีแอกทีฟ

คำถามที่พบบ่อย

บทเรียน “สล็อตและสล็อตแบบมีขอบเขต” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สล็อตและสล็อตแบบมีขอบเขต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Vue Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Vue Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สล็อตและสล็อตแบบมีขอบเขต”

ประกอบคอมโพเนนต์ที่ยืดหยุ่นด้วยสล็อตและสล็อตแบบมีขอบเขต คุณปฏิบัติ Vue Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Vue Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Vue Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน

บทเรียน “สล็อตและสล็อตแบบมีขอบเขต” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Vue Academy นี้ได้ไหม

ได้ บทเรียน Vue Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างและลงทะเบียนคอมโพเนนต์
  2. Props และเหตุการณ์แบบกำหนดเอง
  3. สล็อตและสล็อตแบบมีขอบเขต
← กลับไปที่ Vue Academy