vue3模糊查询的代码
时间: 2023-08-07 14:15:47 浏览: 83
在 Vue 3 中,可以使用 `computed` 计算属性和 `watch` 监听器来实现模糊查询。以下是一个简单的例子:
```html
<template>
<div>
<input v-model="searchText" placeholder="输入关键字搜索">
<ul>
<li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li>
</ul>
</div>
</template>
<script>
import { ref, computed, watch } from 'vue';
export default {
setup() {
const items = ref([
{ id: 1, name: '苹果' },
{ id: 2, name: '香蕉' },
{ id: 3, name: '橙子' },
{ id: 4, name: '菠萝' },
{ id: 5, name: '西瓜' },
]);
const searchText = ref('');
// 计算属性,根据搜索关键字过滤 items
const filteredItems = computed(() => {
return items.value.filter(item => {
return item.name.includes(searchText.value);
});
});
// 监听 searchText,当其改变时重新计算 filteredItems
watch(searchText, () => {
filteredItems.value;
});
return {
searchText,
filteredItems,
};
},
};
</script>
```
这段代码中,我们使用了 `ref` 创建了 `items` 和 `searchText` 两个响应式变量。然后使用 `computed` 创建了一个 `filteredItems` 计算属性,用于根据搜索关键字过滤 `items`。最后使用 `watch` 监听 `searchText` 的变化,当其改变时重新计算 `filteredItems`。在模板中,我们使用 `v-for` 循环渲染 `filteredItems`,并使用 `v-model` 绑定 `searchText` 的值。用户输入关键字时,`filteredItems` 会自动更新并渲染到页面上。
阅读全文