Vue.js 在keyup上筛选数组结果
我有一个名称数组,我使用Vue.js 在keyup上筛选数组结果,vue.js,vuejs2,vue-component,v-for,Vue.js,Vuejs2,Vue Component,V For,我有一个名称数组,我使用v-for循环,当用户开始在搜索框中键入时,我试图过滤这些结果 我在下面添加了代码以供参考,如果我以v-for=“entry in entries”的方式执行循环,那么它将输出数组,但不使用computed and filteredList函数 条目 {{entry.name} 从“@/components/add entry.vue”导入addEntry 导出默认值{ 名称:'条目列表', 搜索:“”, 组成部分:{ 补遗 }, 数据:函数(){ 返回{ 参赛
v-for
循环,当用户开始在搜索框中键入时,我试图过滤这些结果
我在下面添加了代码以供参考,如果我以v-for=“entry in entries”
的方式执行循环,那么它将输出数组,但不使用computed and filteredList函数
条目
-
{{entry.name}
从“@/components/add entry.vue”导入addEntry
导出默认值{
名称:'条目列表',
搜索:“”,
组成部分:{
补遗
},
数据:函数(){
返回{
参赛作品:[
{
名字:“保罗”
},
{
名字:“巴里”
},
{
名字:“克雷格”
},
{
名字:“佐伊”
}
]
}
},
计算:{
过滤器列表(){
返回this.entries.filter(条目=>{
return entry.name.toLowerCase().includes(this.search.toLowerCase())
})
}
}
}
尝试将搜索属性移到数据选项,如下所示:
export default {
name: 'entry-list',
components: {
addEntry
},
data: function() {
return {
search: '',
entries: [
{
name: 'Paul'
},
{
name: 'Barry'
},
{
name: 'Craig'
},
{
name: 'Zoe'
}
]
}
},
computed: {
filteredList() {
if(this.search === '') return this.entries
return this.entries.filter(entry => {
return entry.name.toLowerCase().includes(this.search.toLowerCase())
})
}
}
}
另外,如果搜索道具为空,则添加检查以返回完整条目列表