Vue.js Components
Creating and using Vue components
Component Definition
export default { # Options API
name: 'MyComponent',
data() {
return { count: 0 }
}
}
Composition API
import { ref } from 'vue';
export default {
setup() {
const count = ref(0);
return { count }
}
}
Props
props: ['title', 'count'] # array syntax
props: {
title: String, # type validation
count: {
type: Number,
required: true,
default: 0
}
}
Emitting Events
this.$emit('update', value); # Options API
const emit = defineEmits(['update']);
emit('update', value); # Composition API
Slots
<slot>Default content</slot> # default slot
<slot name="header"></slot> # named slot
<template #header>...</template> # use named slot
Component Registration
import MyComponent from './MyComponent.vue';
export default {
components: { MyComponent } # local registration
}