MigsLab UIVue 3 component workshop

Components

Accordion

A vertically stacked set of collapsible sections.

import { AccordionComponent, AccordionItemComponent, AccordionTriggerComponent, AccordionContentComponent } from '@/MigsLab/shared'

Example

<AccordionComponent>
  <AccordionItemComponent value="what">
    <AccordionTriggerComponent>What is Vue.js?</AccordionTriggerComponent>
    <AccordionContentComponent>A progressive framework...</AccordionContentComponent>
  </AccordionItemComponent>
</AccordionComponent>

Single item open, controlled

Set :multiple="false" so opening one item closes the others. Bind v-model to read or set the open items.

Vue.js is a progressive framework for building user interfaces.

Open: [ "what" ]

const openItems = ref<string[]>(['what'])

<AccordionComponent v-model="openItems" :multiple="false">
  ...
</AccordionComponent>

API

AccordionComponent props

NameType Default Description
v-modelstring[][]Values of the open items. Optional; the accordion manages its own state when unbound.
multiplebooleantrueAllow more than one item open at a time.

AccordionItemComponent props

NameType Default Description
valuestringauto idUnique value for the item; needed when you control v-model.
defaultOpenbooleanfalseOpen the item when it first renders.

Slots

NameDescription
AccordionTriggerComponent: defaultHeader text of the item; clicking it toggles the item.
AccordionContentComponent: defaultBody shown while the item is open.