5.5 KiB
::: tip Vue Select leverages scoped slots to allow for total customization of the presentation layer. Slots can be used to change the look and feel of the UI, or to simply swap out text. :::
<style> .slot-docs h2 { border-top: 1px solid #f0f0f0; border-bottom: none; margin-top: 2rem; padding-top: 2rem; } .slot-docs h2:first-child { border-top: none; margin-top: 0; } </style>footer
Displayed at the bottom of the component, below .vs__dropdown-toggle.
When implementing this slot, you'll likely need to use appendToBody to position the dropdown.
Otherwise content in this slot will affect it's positioning.
search {string}- the current search queryloading {boolean}- is the component loadingsearching {boolean}- is the component searchingfilteredOptions {array}- options filtered by the search textdeselect {function}- function to deselect an option
header
Displayed at the top of the component, above .vs__dropdown-toggle.
search {string}- the current search queryloading {boolean}- is the component loadingsearching {boolean}- is the component searchingfilteredOptions {array}- options filtered by the search textdeselect {function}- function to deselect an option
list-footer
Displayed as the last item in the dropdown. No content by default. Parent element is the <ul>,
so this slot should contain a root <li>.
search {string}- the current search queryloading {boolean}- is the component loadingsearching {boolean}- is the component searchingfilteredOptions {array}- options filtered by the search text
list-header
Displayed as the first item in the dropdown. No content by default. Parent element is the <ul>,
so this slot should contain a root <li>.
search {string}- the current search queryloading {boolean}- is the component loadingsearching {boolean}- is the component searchingfilteredOptions {array}- options filtered by the search text
no-options
The no options slot is displayed above list-footer in the dropdown when
filteredOptions.length === 0.
search {string}- the current search queryloading {boolean}- is the component loadingsearching {boolean}- is the component searching
open-indicator
The open indicator is the caret icon on the component used to indicate dropdown status.
attributes: {
'ref': 'openIndicator',
'role': 'presentation',
'class': 'vs__open-indicator',
}
option
The current option within the dropdown, contained within <li>.
option {Object}- The currently iterated option fromfilteredOptions
search
The search input has a lot of bindings, but they're grouped into attributes and events. Most
of the time, you will just be binding those two with v-on="events" and v-bind="attributes".
If you want the default styling, you'll need to add .vs__search to the input you provide.
/**
* Attributes to be bound to a search input.
*/
attributes: {
'disabled': this.disabled,
'placeholder': this.searchPlaceholder,
'tabindex': this.tabindex,
'readonly': !this.searchable,
'id': this.inputId,
'aria-autocomplete': 'list',
'aria-labelledby': `vs${this.uid}__combobox`,
'aria-controls': `vs${this.uid}__listbox`,
'aria-activedescendant': this.typeAheadPointer > -1
? `vs${this.uid}__option-${this.typeAheadPointer}`
: '',
'ref': 'search',
'type': 'search',
'autocomplete': this.autocomplete,
'value': this.search,
},
/**
* Events that this element should handle.
*/
events: {
'compositionstart': () => this.isComposing = true,
'compositionend': () => this.isComposing = false,
'keydown': this.onSearchKeyDown,
'blur': this.onSearchBlur,
'focus': this.onSearchFocus,
'input': (e) => this.search = e.target.value,
}
selected-option
The text displayed within selected-option-container.
This slot doesn't exist if selected-option-container is implemented.
option {Object}- A selected option
selected-option-container
This is the root element where v-for="option in selectedValue". Most of the time you'll want to
use selected-option, but this container is useful if you want to disable the deselect button,
or have fine grain control over the markup.
option {Object}- Currently iterated selected optiondeselect {Function}- Method used to deselect a given option whenmultipleis truedisabled {Boolean}- Determine if the component is disabledmultiple {Boolean}- If the component supports the selection of multiple values
spinner
loading {Boolean}- if the component is in a loading state