Use v-model to bind selected values, and options as select options.
<template>
  <multi-select v-model="selected" :options="options"/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-example.vue -->
 Use limit to restrict the maximum number of options user can select, no limit when set to 0.
<template>
  <multi-select v-model="selected" :options="options" :limit="3"/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-limit.vue -->
 Optional sizes sm and lg are supported. You can also add block prop to quickly apply width: 100% style to the component.
<template>
  <section>
    <div>
      <multi-select v-model="selected" :options="options" size="sm"/>
    </div>
    <br/>
    <div>
      <multi-select v-model="selected" :options="options"/>
    </div>
    <br/>
    <div>
      <multi-select v-model="selected" :options="options" size="lg"/>
    </div>
    <br/>
    <div>
      <multi-select v-model="selected" :options="options" size="lg" block/>
    </div>
  </section>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-sizes.vue -->
 Add disabled: true to an option to disable it.
<template>
  <multi-select v-model="selected" :options="options"/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3', disabled: true},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5', disabled: true}
        ]
      }
    }
  }
</script>
<!-- multi-select-disabled-options.vue -->
 <template>
  <multi-select v-model="selected" :options="options" disabled/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-disabled-select.vue -->
 Collapse multiple selected items into a text by using collapse-selected prop.
<template>
  <multi-select v-model="selected" :options="options" collapse-selected/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-collapse-selected.vue -->
 If you need grouped options, simply add group (String) as the name to them.
<template>
  <multi-select v-model="selected" :options="options"/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Apple', group: 'Fruit'},
          {value: 2, label:'Banana', group: 'Fruit'},
          {value: 3, label:'Orange', group: 'Fruit'},
          {value: 4, label:'Red', group: 'Color'},
          {value: 5, label:'Green', group: 'Color'}
        ]
      }
    }
  }
</script>
<!-- multi-select-option-groups.vue -->
 Add filterable to append filter input before options.
By default, options are filtered by item value and label (case ignored), use a custom filter-function to override it if needed.
<template>
  <multi-select v-model="selected" :options="options" filterable/>
</template>
<script>
  export default {
    data () {
      return {
        selected: [],
        options: [
          {value: 1, label:'Option1'},
          {value: 2, label:'Option2'},
          {value: 3, label:'Option3'},
          {value: 4, label:'Option4'},
          {value: 5, label:'Option5'}
        ]
      }
    }
  }
</script>
<!-- multi-select-filterable.vue -->
 | Name | Type | Default | Required | Description | 
|---|---|---|---|---|
v-model |  Array | ✔ | The selected values. | |
options |  Array | ✔ | The select options. | |
label-key |  String | label | Identity key name for label. | |
value-key |  String | value | Identity key name for value. | |
limit |  Boolean | 0 | Maximum number of options user can select, no limit when set to 0. | |
size |  String | Optional sizes, supported: sm / lg. | ||
block |  Boolean | false | Apply block level style. | |
placeholder |  String | Select... | The default text displayed when no options are selected. | |
split |  String | , | The options display spliter. | |
filterable |  Boolean | false | Append filter input before options (default is filter by item value and label, case ignored). | |
filter-placeholder |  String | Search... | The default text displayed in filter input. | |
filter-auto-focus |  Boolean | true | Auto focus on filter input. | |
filter-function |  Function | Custom filter function, with one param as input string, and returns the filtered array. | ||
disabled |  Boolean | false | Disable the select component. | |
collapse-selected |  Boolean | false | Collapse multiple selected items into a text. | |
append-to-body |  Boolean | false | Append the dropdown to body. | |
selected-icon |  String | glyphicon glyphicon-ok | Icon displayed in option while selected. | |
item-selected-class |  String | (0.24.0+) The class applied to the selected list item. | 
| Name | Params | Description | 
|---|---|---|
change |  value | Triggers when the selected value changes. | 
visible-change |  the visible status (true / false) | Triggers when the dropdown toggles. | 
limit-exceed |  Triggers when the selected value length exceeded limit. | |
focus |  event | Triggers when input focuses. | 
blur |  event | Triggers when input blurs. | 
| Name | Description | 
|---|---|
option |  (0.37+) The option scoped slot, with item prop. | 
Caught a mistake or want to contribute to the documentation? Edit this page on Github!
Designed and built by @wxsm
Code under MIT License
Document under CC BY 4.0