<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <div id="app" class="container">
    <input type="text" class="form-control" v-model="filterText" style="width: 300px;" placeholder="請輸入 Lala / Grete / Steffi 後按 Enter" @keyup.enter="filterData">
    <ul>
      <li v-for="(item, key) in filterArray" :key="item.age">
        {{ key }} - {{ item.name }} {{ item.age }} 歲
      </li>
    </ul>
  </div>
</body>

</html>
Vue.component("list-item", {
  template: `
    <li>
      {{ item.name }} {{ item.age }} 歲
    </li>
  `,
  props: ["item"]
});

var app = new Vue({
  el: "#app",
  data: {
    arrayData: [
      {
        name: "Lala",
        age: 16
      },
      {
        name: "Grete",
        age: 24
      },
      {
        name: "Steffi",
        age: 20
      }
    ],
    objectData: {
      ming: {
        name: "小明",
        age: 16
      },
      auntie: {
        name: "漂亮阿姨",
        age: 24
      },
      jay: {
        name: "杰倫",
        age: 20
      }
    },
    filterArray: [],
    filterText: ""
  },
  methods: {
    filterData: function() {
      var vm = this;
      vm.filterArray = vm.arrayData.filter(function(item) {
        return item.name.match(vm.filterText);
      });
    }
  }
});

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.6.10/vue.min.js