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做詳情頁跳轉(zhuǎn)的時(shí)候使用created方法 數(shù)據(jù)不會(huì)更新問題
這篇文章主要介紹了解決vue做詳情頁跳轉(zhuǎn)的時(shí)候使用created方法 數(shù)據(jù)不會(huì)更新問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07vue3配置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-08Vue實(shí)現(xiàn)預(yù)覽文件(Word/Excel/PDF)功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何通過Vue實(shí)現(xiàn)預(yù)覽文件(Word/Excel/PDF)的功能,文中的實(shí)現(xiàn)步驟講解詳細(xì),需要的小伙伴可以參考一下2023-03-03vue2 mint-ui loadmore實(shí)現(xiàn)下拉刷新,上拉更多功能
這篇文章主要介紹了vue2 mint-ui loadmore實(shí)現(xiàn)下拉刷新,上拉更多功能,需要的朋友可以參考下2018-03-03vite+vue3中require?is?not?defined問題及解決
這篇文章主要介紹了vite+vue3中require?is?not?defined問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05