explaingit

sagalbot/vue-select

4,679JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A drop-in replacement for the plain HTML select element in Vue.js apps that adds search-as-you-type, multi-select, custom tags, and remote data loading in about 20KB with no extra dependencies. Works with both Vue 2 and Vue 3.

Mindmap

mindmap
  root((vue-select))
    What it does
      Searchable dropdown
      Multi-select
      Custom tags
      Remote data loading
    Tech Stack
      JavaScript
      Vue.js
      SCSS
    Features
      Keyboard accessible
      Slots for customization
      SSR compatible
      Vuex compatible
    Setup
      npm or yarn
      Vue 2 stable
      Vue 3 beta release
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace a plain HTML select with a searchable, filterable dropdown in a Vue app without adding any extra library dependencies.

USE CASE 2

Build a multi-select tag input that lets users pick from a preset list or add their own custom tags.

USE CASE 3

Load dropdown options dynamically from a remote API as the user types, without writing custom fetch logic.

Tech stack

JavaScriptVue.jsSCSS

Getting it running

Difficulty · easy Time to first run · 5min

Vue 3 support is via a beta npm release, Vue 2 uses the stable 3.x release, make sure to pull the right version for your project.

License not stated in the explanation.

In plain English

Vue Select is a dropdown and search component for Vue.js applications. It was built to replace the plain HTML select element, which is notoriously hard to style and limited in what it can do. The project gives developers a ready-made component they can drop into any Vue project without installing any additional libraries. The component handles several things that the native browser select cannot do on its own. You can let users search or filter through a list of options as they type, select multiple items at once, add custom tags that weren't in the original list, and load options from a remote API. It also works with Vuex (a state management tool), supports server-side rendering, and meets basic accessibility standards so keyboard users can navigate it. The footprint is small: roughly 20 kilobytes total when split between JavaScript and CSS. The CSS is intentionally shipped separately so you can either use the default styles or override them with your own SCSS variables. The component itself exposes slots, which are customizable areas in the template, letting you change how individual options, the selected value, or the dropdown arrow look without rewriting the whole thing. Installing it is a standard package manager step. For Vue 3 projects you pull the beta release from npm or yarn, register the component globally or locally, and import the CSS file. The Vue 2 path follows the same pattern with the stable 3.x release. There is also a CDN option for projects that do not use a build step. The README is sparse on configuration details but links to a dedicated documentation site and CodePen templates for both Vue 2 and Vue 3 where you can try the component live before committing to it.

Copy-paste prompts

Prompt 1
Show me how to install vue-select in a Vue 3 project and bind it to an array of options fetched from an API.
Prompt 2
How do I customize vue-select's appearance using SCSS variables to match my app's color scheme?
Prompt 3
How do I configure vue-select to allow users to add new tags that are not already in the options list?
Prompt 4
How do I use vue-select in a plain HTML page without a build tool using a CDN script tag?
Open on GitHub → Explain another repo

← sagalbot on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.