## Removed Function Callbacks Three function callbacks have been removed in favor of using events. - `onChange` - `onInput` - `onSearch` While this is a breaking change, the change in your application should be as simple as swapping the prop you were using for an event. ### `onChange` & `onInput` In v2.x, Overwriting `onChange` in an application was more likely to break vue-select's internals and cause issues. The `input` event provides identical functionality and can be swapped out in your application. ```html ``` Additionally, the `change` event has been removed. This event was redundant, `input` should be used instead. ```html ``` ### `onSearch` The `onSearch` prop was removed for the same reason as `onChange` and `onInput`. The `search` event has always provided the same parameters and can be used in it's place. ```html ``` ## Separated CSS CSS was removed from the JS bundle in favor of a separate CSS file to support SSR and easier customization. ```js @import vSelect from 'vue-select`; @import 'vue-select/dist/vue-select.css'; ``` ## New Class Selector Prefix In order to avoid CSS collisions and allow for low specificity overrides of CSS, all classes have been renamed to include the `vs__` prefix. The full list of renamed classes are listed below: | original | renamed | | ------- | --------- | | `.open-indicator` | `.vs__open-indicator` | | `.dropdown-toggle` | `.vs__dropdown-toggle` | | `.dropdown-menu` | `.vs__dropdown-menu` | | `.clear` | `.vs__clear` | | `.selected-tag` | `.vs__selected` | | `.no-options` | `.vs__no-options` | | `.spinner` | `.vs__spinner` | | `.close` | `.vs__deselect` | | `.active` | `.vs__active` | ## Internal State **The changes listed below are very unlikely to break your apps** unless you've been hooking into vue-select internal values. [#781](https://github.com/sagalbot/vue-select/pull/781) (thanks [@owenconti!](https://github.com/owenconti)) introduced a number of optimizations to the way that the component handles internal state. - `value`: the `value` prop is undefined by default. vue-select no longer maintains an internal `mutableValue` state when a `value` prop has been passed. When `:value` or `v-model` is not used, vue-select will maintain internal state using the `_value` property. - `mutableOptions` has been removed in favor of an `optionList` computed property. ## Misc - `fade` transition renamed to `vs__fade` - Removed `a` element that was serving as the click handler within dropdown options