An open API service indexing awesome lists of open source software.

https://github.com/shentao/vue-multiselect

Universal select/multiselect/tagging component for Vue.js
https://github.com/shentao/vue-multiselect

component dropdown javascript select vue

Last synced: about 1 month ago
JSON representation

Universal select/multiselect/tagging component for Vue.js

Awesome Lists containing this project

README

          

# vue-multiselect

## Documentation for version 3 (Compatible with Vue 3)

Documentation for v3.0.0 is almost the same as for v2.x as it is mostly backward compatible. For the full docs for v3 and previous versions, check out: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-started)

## Sponsors



GetForm Logo



Suade Logo



Storyblok



Vue Mastery Logo

## Features & characteristics:
* Vue 3 Compatible
* NO dependencies
* Single select
* Multiple select
* Tagging
* Dropdowns
* Filtering
* Search with suggestions
* Logic split into mixins
* Basic component and support for custom components
* V-model support
* Vuex support
* Async options support
* Fully configurable (see props list below)

## Install & basic usage

```bash
npm install vue-multiselect
```

```vue




import VueMultiselect from 'vue-multiselect'
export default {
components: { VueMultiselect },
data () {
return {
selected: null,
options: ['list', 'of', 'options']
}
}
}

```

## JSFiddle

[Example JSFiddle](https://jsfiddle.net/mattelen/8cyt3hrn/5/) – Use this for issue reproduction.

## Examples

### Single select / dropdown
```vue

```

### Single select with search
```vue

```

### Multiple select with search
```vue

```

### Tagging
with `@tag` event
```vue

```

``` javascript

addTag (newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
}
this.taggingOptions.push(tag)
this.taggingSelected.push(tag)
},
```

### Asynchronous dropdown
```vue


Oops! No elements found. Consider changing the search query.

```

``` javascript
methods: {
asyncFind (query) {
this.countries = findService(query)
}
}
```

## ⚠️ Build Tool Compatibility

**vue-multiselect requires Vue's Options API to function properly.** There are known issues with certain versions of `@vitejs/plugin-vue` that may inadvertently disable the Options API.

### Known Issue with @vitejs/plugin-vue

If you're experiencing issues after updating `@vitejs/plugin-vue` to version 5.2.2 or later, consider downgrading to version 5.2.1:

```bash
npm install @vitejs/plugin-vue@5.2.1
```

This issue occurs because changes in the plugin's configuration handling can disable the Options API even when not explicitly configured. See [issue #1901](https://github.com/shentao/vue-multiselect/issues/1901) for more details.

## Special Thanks

Thanks to Matt Elen for contributing this version!

> A Vue 3 upgrade of [@shentao's](https://github.com/shentao) [vue-mulitselect](https://github.com/shentao/vue-multiselect) component. The idea is that when you upgrade to Vue 3, you can swap the two components out, and everything should simply work. Feel free to check out our story of how we upgraded our product to Vue 3 on our blog at [suade.org](https://suade.org/a-products-vue-3-migration-a-real-life-story/)

## Contributing

``` bash
# distribution build with minification
npm run bundle

# run unit tests
npm run test

```