An Autocomplete/typeahead Component for Vue 2 and Bootstrap 4

vue-bootstrap-typeahead is a simple list-group based typeahead/autocomplete using Bootstrap 4 and Vue 2.

vue bootstrap typeahead, vuejs autocomplete component, vue autocomplete example, vue autocomplete dropdown

  • bootstrap-vue compatible
  • Append and prepend icons and buttons
  • Works well with API JSON responses

How to make use of it:

Installation:

npm i vue-bootstrap-typeahead --save

1. Import and register the component.

import VueBootstrapTypeahead from 'vue-bootstrap-typeahead'

// Global registration
Vue.component('vue-bootstrap-typeahead', VueBootstrapTypeahead)

// OR

// Local registration
export default {
    components: {
        VueBootstrapTypeahead
    }
}

2. The only required attribute is a data array.

<vue-bootstrap-typeahead 
  v-model="query"
  :data="['Canada', 'USA', 'Mexico']"
/>
<template>
  <vue-bootstrap-typeahead
    :data="addresses"
    v-model="addressSearch"
    size="lg"
    :serializer="s => s.text"
    placeholder="Type an address..."
    @hit="selectedAddress = $event"
  >
</template>

<script>
import _ from 'underscore'

const API_URL = 'https://api-url-here.com?query=:query'

export default {
  name: 'TestComponent',

  data() {
    return {
      addresses: [],
      addressSearch: '',
      selectedAddress: null
    }
  },

  methods: {
    async getAddresses(query) {
      const res = await fetch(API_URL.replace(':query', query))
      const suggestions = await res.json()
      this.addresses = suggestions.suggestions
    }
  },

  watch: {
    addressSearch: _.debounce(function(addr) { this.getAddresses(addr) }, 500)
  }
}
</script>

Attributes

NameTypeDefaultDescription
dataArray An array of data is to be available for querying. Required
serializerFunctioninput => inputThe function used to convert the entries in the data array into a text string.
sizeString Size of the input-group. Valid values: sm or lg
backgroundVariantString Background color for the autocomplete result list-group items.
textVariantString Text color for the autocomplete result list-group items. See valid values
inputClassString Class to the added to the input tag for validation, etc.
maxMatchesNumber10The maximum amount of list items to appear.
minMatchingCharsNumber2Minimum matching characters in the query before the typeahead list appears
prependString Text to be prepended to the input-group
appendString Text to be appended to the input-group

Events

NameDescription
hitTriggered when an autocomplete item is selected. The entry in the input data an array that was selected is returned.
inputThe component can be used with v-model

autocomplete/typeahead component for vue js, vue-bootstrap-typeahead Plugin/Gihub


See Demo And Download

Official Website(alexurquhart): Click Here

This superior jQuery/javascript plugin is developed by alexurquhart. For extra advanced usage, please go to the official website.

Related Posts

HStack-and-VStack-in-CSS

CSS Layout Components Horizontal/Vertical Stack | HStack and VStack

HStack and VStack in CSS – CSS layout components that (basically) stack anything horizontally and vertically. A pure CSS library that makes it easy to stack elements…

Floating-Whatsapp-Chat-Button

How to Add Floating Whatsapp Chat Button In HTML | venom-button

Venom Button is a very simple plugin for the jQuery floating WhatsApp button. Adds a floating button to your site that calls WhatsApp Click to Chat API. It will automatically start the WhatsApp…

Data-Table-Generator-Tabulator

Interactive Data Table Generator with JS/jQuery and JSON | Tabulator

Tabulator allows you to create interactive tables in seconds from any HTML Table, JavaScript array, AJAX data source, or JSON format data. Just include the library in your…

alert-confirm-prompt-attention-js

Simple Alert, Confirm, Prompt Popup Using Vanilla JavaScript Library | attention.js

JavaScript provides various built-in functionality to display popup messages for different purposes. Attention JS is a vanillaJS plugin used to create a custom alert, confirm, or Prompt…

Bootstrap-4-Sidebar-Menu-Responsive-Template

Bootstrap 4 Sidebar Menu Responsive Template | MDB

Bootstrap Side Navbar – Responsive sidebar template based on the Bootstrap 4 framework. An easy-to-use, totally responsive, Google Material Design impressed aspect navigation for modern web app…

Bootstrap-4-Toast-Notification-Plugin

Lightweight Bootstrap 4 Toast Notification Plugin | BS4 Advanced Toast

A lightweight Bootstrap 4 Toast Notification plugin integrated with JS/jQuery. bs4-toast.js is a JavaScript library that enhances the native Bootstrap toast component with icons, buttons, callbacks, and…

Leave a Reply

Your email address will not be published. Required fields are marked *