# Components ## Props with TypeScript ```vue ``` ## Emits (Events) ```vue ``` ## v-model (Two-way Binding) ```vue ``` ## Slots ```vue ``` ## Scoped Slots (Advanced) ```vue ``` ## Provide/Inject ```vue ``` ## Teleport ```vue ``` ## Dynamic Components ```vue ``` ## Async Components ```vue ``` ## Quick Reference | Pattern | Use Case | |---------|----------| | `defineProps()` | Type-safe props with TypeScript | | `withDefaults()` | Props with default values | | `defineEmits()` | Type-safe event emitters | | `v-model` | Two-way data binding | | `` | Content distribution | | Scoped slots | Pass data from child to parent | | `provide/inject` | Dependency injection (avoid prop drilling) | | `` | Render DOM outside component hierarchy | | `` | Dynamic component switching | | `defineAsyncComponent()` | Lazy load components |