<div id="app">
  <h2>Language Search</h2>

  <div class="form-group">
    <input
      type="text"
      v-model="input"
      placeholder="Enter language"
      class="form-control"
    />
  </div>

  <ul v-for="(item, index) in filteredList" class="list-group">
    <li class="list-group-item" :key="item">{{ item }}</li>
  </ul>
</div>
#app {
  width: 300px;
  margin: 0 auto;
}

#app h2 {
  margin: 20px;
  text-align: center;
}
new Vue({
  el: "#app",
  data() {
    return {
      input: "",
      languages: [
        "JavaScript",
        "Ruby",
        "Scala",
        "Python",
        "Java",
        "Kotlin",
        "Elixir"
      ]
    };
  },
  computed: {
    filteredList() {
      return this.languages.filter(item =>
        item.toLowerCase().includes(this.input.toLowerCase())
      );
    }
  }
});

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js