Vue實(shí)現(xiàn)模糊查詢的簡(jiǎn)單示例
在Vue中實(shí)現(xiàn)模糊查詢,你可以使用JavaScript的filter和includes方法,結(jié)合Vue的v-for指令。下面是一個(gè)簡(jiǎn)單的例子:
首先,你需要在你的Vue實(shí)例中定義一個(gè)數(shù)據(jù)數(shù)組和一個(gè)查詢字符串。
data() {
return {
items: ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'],
query: ''
}
}然后,你可以在你的模板中使用v-for來遍歷這個(gè)數(shù)組,并使用v-model來綁定查詢字符串。
<input v-model="query" type="text" placeholder="Search...">
<ul>
<li v-for="item in filteredItems" :key="item">
{{ item }}
</li>
</ul>在上面的代碼中,filteredItems是一個(gè)計(jì)算屬性,它會(huì)返回過濾后的數(shù)組。你可以使用JavaScript的filter和includes方法來實(shí)現(xiàn)模糊查詢。
computed: {
filteredItems() {
return this.items.filter(item => item.toLowerCase().includes(this.query.toLowerCase()));
}
}在上面的代碼中,filter方法會(huì)遍歷數(shù)組中的每個(gè)元素,并返回一個(gè)新的數(shù)組,該數(shù)組只包含滿足條件的元素。includes方法會(huì)檢查一個(gè)字符串是否包含另一個(gè)字符串。在這個(gè)例子中,我們使用toLowerCase方法將字符串轉(zhuǎn)換為小寫,以便進(jìn)行不區(qū)分大小寫的查詢。
當(dāng)使用Vue3實(shí)現(xiàn)模糊查詢時(shí),你可以利用Vue的響應(yīng)式特性和計(jì)算屬性來實(shí)現(xiàn)。下面是一個(gè)簡(jiǎn)單的說明和代碼示例:
說明:
- 創(chuàng)建一個(gè)Vue3組件,并引入必要的依賴。
- 在組件的setup()函數(shù)中,定義數(shù)據(jù)和計(jì)算屬性。
- 使用v-model指令將輸入框的值綁定到數(shù)據(jù)屬性上。
- 定義一個(gè)計(jì)算屬性filteredItems,根據(jù)輸入框的值過濾數(shù)據(jù)數(shù)組。
- 在模板中使用v-for指令遍歷過濾后的數(shù)據(jù)數(shù)組,并顯示每個(gè)元素。
代碼示例:
<template>
<div>
<input v-model="searchQuery" type="text" placeholder="Search...">
<ul>
<li v-for="item in filteredItems" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const items = ref([
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 3, name: 'Cherry' },
{ id: 4, name: 'Date' },
{ id: 5, name: 'Elderberry' }
]);
const searchQuery = ref('');
const filteredItems = computed(() => {
if (!searchQuery.value) return items.value;
return items.value.filter(item => item.name.toLowerCase().includes(searchQuery.value.toLowerCase()));
});
return { items, searchQuery, filteredItems };
}
};
</script>在上面的代碼中,我們首先導(dǎo)入了Vue3的ref函數(shù),用于創(chuàng)建響應(yīng)式引用。然后,在組件的setup()函數(shù)中,我們定義了兩個(gè)響應(yīng)式引用items和searchQuery,分別表示數(shù)據(jù)數(shù)組和查詢字符串。接下來,我們定義了一個(gè)計(jì)算屬性filteredItems,根據(jù)輸入框的值過濾數(shù)據(jù)數(shù)組。最后,在模板中,我們使用v-model指令將輸入框的值綁定到searchQuery上,并使用v-for指令遍歷filteredItems數(shù)組,顯示每個(gè)項(xiàng)目的名稱。當(dāng)輸入框的值發(fā)生變化時(shí),計(jì)算屬性會(huì)自動(dòng)更新,并觸發(fā)重新渲染。
以上就是Vue實(shí)現(xiàn)模糊查詢的簡(jiǎn)單示例的詳細(xì)內(nèi)容,更多關(guān)于Vue實(shí)現(xiàn)模糊查詢的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決vue做詳情頁(yè)跳轉(zhuǎn)的時(shí)候使用created方法 數(shù)據(jù)不會(huì)更新問題
這篇文章主要介紹了解決vue做詳情頁(yè)跳轉(zhuǎn)的時(shí)候使用created方法 數(shù)據(jù)不會(huì)更新問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue3配置Element及element-plus/lib/theme-chalk/index.css報(bào)錯(cuò)的解決
這篇文章主要介紹了vue3配置Element及element-plus/lib/theme-chalk/index.css報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
解決vue中監(jiān)聽input只能輸入數(shù)字及英文或者其他情況的問題
今天小編就為大家分享一篇解決vue中監(jiān)聽input只能輸入數(shù)字及英文或者其他情況的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Vue實(shí)現(xiàn)預(yù)覽文件(Word/Excel/PDF)功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何通過Vue實(shí)現(xiàn)預(yù)覽文件(Word/Excel/PDF)的功能,文中的實(shí)現(xiàn)步驟講解詳細(xì),需要的小伙伴可以參考一下2023-03-03
vue2 mint-ui loadmore實(shí)現(xiàn)下拉刷新,上拉更多功能
這篇文章主要介紹了vue2 mint-ui loadmore實(shí)現(xiàn)下拉刷新,上拉更多功能,需要的朋友可以參考下2018-03-03
vite+vue3中require?is?not?defined問題及解決
這篇文章主要介紹了vite+vue3中require?is?not?defined問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

