Props
INFO
This component is ready to be used in production. However, if there is a feature you would like to see implemented, feel free to open an issue or submit a pull request.
v-model
Type: string | string[]
Required: true
The value of the select. If isMulti is true, the v-model should be an array of string string[].
options
Type: Option[]
Required: true
A list of options to choose from. Each option should have a label and a value property. You can add any other properties to the options, which will be passed to the option slot.
Type interface:
type Option = {
label: string;
value: string;
[key: string]: any;
};TIP
This type is exported from the component and can be imported in your application.
autoscroll
Type: boolean
Default: true
Whether the dropdown should automatically scroll to the selected option, when using keyboard navigation.
placeholder
Type: string
Default: Select an option
The placeholder text to show when no option is selected.
isClearable
Type: boolean
Default: true
Whether the select should have a clear button to reset the selected value.
isDisabled
Type: boolean
Default: false
Whether the select should be disabled.
isSearchable
Type: boolean
Default: true
Whether the select should have a search input to filter the options.
isMulti
Type: boolean
Default: false
Whether the select should allow multiple selections. If true, the v-model should be an array of string string[].
closeOnSelect
Type: boolean
Default: true
Whether the dropdown should close after an option is selected.
teleport
Type: string
Default: undefined
Teleport the menu outside of the component DOM tree. You can pass a valid string according to the official Vue 3 Teleport documentation (e.g. teleport="body" will teleport the menu into the <body> tree). This can be used in case you are having z-index issues within your DOM tree structure.
INFO
Top and left properties are calculated using a ref on the .vue-select with a container.getBoundingClientRect().
inputId
Type: string
Default: undefined
The id attribute to be passed to the <input /> element. This is useful for accessibility or forms.
aria
Type: { labelledby?: string; required?: boolean; }
Default: undefined
Aria attributes to be passed to the select control to improve accessibility.
filterBy
Type:
(option: Option, label: string, search: string) => boolean;Default:
(option, label, search) => label.toLowerCase().includes(search.toLowerCase());Callback function to determine if the current option should match the search query. This function is called for each option and should return a boolean.
The label is provided as a convenience, using getOptionLabel or getMultiValueLabel depending on the isMulti prop.
INFO
By default, the following callback function is used (option, label, search) => label.toLowerCase().includes(search.toLowerCase())
getOptionLabel
Type:
(option: Option) => string;Default:
(option) => option.label;A function to get the label of an option. This is useful when you want to use a property different from label as the label of the option.
This function is used to display the options in the dropdown, and to display the selected option (single-value) in the select.
getMultiValueLabel
Type:
(option: Option) => string;Default:
(option) => option.label;A function to get the label of an option. This is useful when you want to use a property different from label as the label of the option.
This function is used to display the selected options (multi-value) in the select.