<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>search</title> <script src="vue.js"></script> </head> <body> <div id="app"> <input v-model='search' /> <ul v-for="(item,index) in searchData " :key='index'> <li>{{item.num}}</li> </ul> </div> <script> var vm = new Vue({ el: '#app', data: { search: '', list: [{ num:1 }, { num:2 }, { num:3 }, { num:4 }] }, computed: { searchData: function () { var search = this.search; if (search) { return this.list.filter(function (item) { return Object.keys(item).some(function (key) { return String(item[key]).toLowerCase().indexOf(search) >-1 }) }) } return this.list; } } }) </script> </body> </html>