<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.4.5/fuse.min.js"></script>
</head>
<body>
<div id="app">
<input type="" v-model="searchKey">
<ul>
<li v-for="i in listComputed" :key='i.id'>
{{i.name}}
</li>
</ul>
</div>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
searchKey: '',
list: [
{
id: 1,
name: 1111
},{
id: 2,
name: 2222
},{
id: 3,
name: 13
},{
id: 4,
name: 1111
},{
id: 5,
name: 113
}
]
},
computed: {
listComputed() {
if(!this.searchKey){
return this.list
}else{
const fuse = new Fuse(this.list,{
keys: ['name']
})
return fuse.search(this.searchKey)
}
}
}
})
</script>
</body>
</html>