Vue實(shí)現(xiàn)模糊查詢的簡單示例
在Vue中實(shí)現(xiàn)模糊查詢,你可以使用JavaScript的filter和includes方法,結(jié)合Vue的v-for指令。下面是一個(gè)簡單的例子:
首先,你需要在你的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ì)算屬性,它會返回過濾后的數(shù)組。你可以使用JavaScript的filter和includes方法來實(shí)現(xiàn)模糊查詢。
computed: {
filteredItems() {
return this.items.filter(item => item.toLowerCase().includes(this.query.toLowerCase()));
}
}在上面的代碼中,filter方法會遍歷數(shù)組中的每個(gè)元素,并返回一個(gè)新的數(shù)組,該數(shù)組只包含滿足條件的元素。includes方法會檢查一個(gè)字符串是否包含另一個(gè)字符串。在這個(gè)例子中,我們使用toLowerCase方法將字符串轉(zhuǎn)換為小寫,以便進(jìn)行不區(qū)分大小寫的查詢。
當(dāng)使用Vue3實(shí)現(xiàn)模糊查詢時(shí),你可以利用Vue的響應(yīng)式特性和計(jì)算屬性來實(shí)現(xiàn)。下面是一個(gè)簡單的說明和代碼示例:
說明:
- 創(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ì)算屬性會自動更新,并觸發(fā)重新渲染。
以上就是Vue實(shí)現(xiàn)模糊查詢的簡單示例的詳細(xì)內(nèi)容,更多關(guān)于Vue實(shí)現(xiàn)模糊查詢的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue配置多個(gè)form表單實(shí)現(xiàn)方式
文章分享了作者在處理多個(gè)form表單和動態(tài)select框下拉選擇項(xiàng)時(shí)遇到的問題和解決方案,作者首先提到使用空數(shù)組塞值不方便,于是將options配置為對象屬性值,以簡化操作,作者希望自己的經(jīng)驗(yàn)?zāi)芙o大家?guī)韰⒖?并鼓勵(lì)大家支持腳本之家2026-02-02
vue實(shí)現(xiàn)PC端錄音功能的實(shí)例代碼
這篇文章主要介紹了vue實(shí)現(xiàn)PC端錄音功能的實(shí)例代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
Vue數(shù)據(jù)變化監(jiān)聽錯(cuò)誤的常見原因與解決方案
在?Vue.js?開發(fā)中,watch?是一個(gè)強(qiáng)大的工具,用于監(jiān)聽數(shù)據(jù)的變化并執(zhí)行相應(yīng)的操作,然而,許多開發(fā)者在使用?watch?時(shí)會遇到數(shù)據(jù)變化未被正確監(jiān)聽的問題,這可能導(dǎo)致程序邏輯錯(cuò)誤或視圖更新失敗,本文將探討這些問題的常見原因,并提供相應(yīng)的解決方案,需要的朋友可以參考下2025-03-03
Vue中引入swiper報(bào)錯(cuò)的問題及解決
這篇文章主要介紹了Vue中引入swiper報(bào)錯(cuò)的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue雙向錨點(diǎn)實(shí)現(xiàn)過程簡易版(scrollIntoView)
這篇文章主要介紹了vue雙向錨點(diǎn)實(shí)現(xiàn)過程簡易版(scrollIntoView),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
vue中根據(jù)時(shí)間戳判斷對應(yīng)的時(shí)間(今天 昨天 前天)
這篇文章主要介紹了vue中 根據(jù)時(shí)間戳 判斷對應(yīng)的時(shí)間(今天 昨天 前天),需要的朋友可以參考下2019-12-12
Vue實(shí)現(xiàn)戶籍管理系統(tǒng)戶籍信息的添加與刪除方式
這篇文章主要介紹了Vue實(shí)現(xiàn)戶籍管理系統(tǒng)戶籍信息的添加與刪除方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue2.0使用swiper組件實(shí)現(xiàn)輪播的示例代碼
下面小編就為大家分享一篇vue2.0使用swiper組件實(shí)現(xiàn)輪播的示例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

