Section 6: Component และ Props
- แบ่งหน้าจอเป็น Component หลักการตั้งชื่อ และการจัดโฟลเดอร์
- ส่งข้อมูลด้วย defineProps พร้อมกำหนด Type และค่าเริ่มต้น
- Reactive Props Destructure ใน Vue 3.5 และหลัก One-way Data Flow
- Scoped Style, CSS Module และ Global Style
- Lab: การ์ดสินค้าที่ใช้ซ้ำได้ทั้งหน้ารายการ
Section 7: Lab: Emits, defineModel และ provide/inject
- ส่ง Event จาก Component ลูกด้วย defineEmits
- ทำ v-model บน Component ของตัวเองด้วย defineModel()
- ส่งข้อมูลข้ามหลายชั้นด้วย provide และ inject แทน Event Bus
- Lab: ช่องกรอกจำนวนสินค้าที่ผูกค่ากับตะกร้าแบบสองทาง
Section 8: Slot, Dynamic Component และ Teleport
- Default Slot, Named Slot และ Scoped Slot
- Dynamic Component ด้วย component :is และคงสถานะด้วย KeepAlive
- Teleport สำหรับ Modal และ Notification
- Async Component ด้วย defineAsyncComponent
- Lab: Modal และ Tab ที่นำไปใช้ซ้ำได้
Section 9: Lab: Composable
- แนวคิด Composable และเหตุที่ใช้แทน Mixin ใน Vue 3
- เขียน Composable ที่รับค่าเข้าและคืนค่า Reactive ออกไป
- Composable สำหรับเรียกข้อมูลพร้อมสถานะ Loading และ Error
- ใช้ VueUse สำหรับงานที่พบบ่อย เช่น Local Storage และขนาดหน้าจอ
- Lab: useCart และ useFetch ที่ใช้ร่วมกันหลาย Component
Section 10: Transition และ Animation
- Transition ขององค์ประกอบเดียวและ CSS Class ของแต่ละช่วง
- Transition Mode และ Transition ระหว่าง Component
- TransitionGroup สำหรับรายการที่เพิ่ม ลบ และสลับตำแหน่ง
- JavaScript Hook และ CSS Animation แบบกำหนดเอง
- Lab: เพิ่ม Animation ให้รายการสินค้าและ Modal