Vue實(shí)現(xiàn)模糊查詢的簡單方法實(shí)例
前言
所謂模糊查詢就是不需要用戶完整的輸入或者說全部輸入信息即可提供查詢服務(wù),也就是用戶可以在邊輸入的同時(shí)邊看到提示的信息(其實(shí)是查詢出來匹配到的信息),百度的搜索功能就是很好的模糊查詢的例子;其實(shí)模糊查詢的原理就是給輸入框綁定oninput事件監(jiān)聽用戶輸入情況,然后每次用戶只要在輸入框中輸入了信息就觸發(fā)事件進(jìn)行查詢?nèi)缓髮?shí)時(shí)展示;原理很簡單,但是實(shí)現(xiàn)起來會有一些問題,我們可以想想,每輸入一個(gè)字符都會觸發(fā)事件,那如果我們需要輸入很長的信息呢,那查詢是不是就得觸發(fā)多次?ajax連續(xù)多次觸發(fā),再加上如果我們的方法體中有操作DOM元素的方法,那么必然會給我們的瀏覽器進(jìn)入假死甚至崩潰狀態(tài);那么我們有沒有辦法來解決此類問題呢?答案是:有的
Vue實(shí)現(xiàn)模糊查詢
通過watch和computed實(shí)現(xiàn)Vue實(shí)現(xiàn)模糊查詢
計(jì)算方法能實(shí)現(xiàn)的偵聽方法也能夠?qū)崿F(xiàn),但推薦使用計(jì)算方法,應(yīng)為偵聽方法比較冗雜
先看看下面的代碼實(shí)現(xiàn)



通過computed(計(jì)算方法)實(shí)現(xiàn)
通過watch實(shí)現(xiàn)
html代碼
<div id="root">
<h2>人員列表</h2>
<input type="text" placeholder="請輸入名字" v-model="keyWord">
<ul>
<li v-for="(p,index) of filPersons" :key="index">
{{p.name}}-{{p.age}}-{{p.sex}}
</li>
</ul>
</div>
script代碼
new Vue({
el:"#root",
data:{
keyWord:'',
persons:[
{id:'001',name:'馬冬梅',age:18,sex:'女'},
{id:'002',name:'周冬雨',age:19,sex:'女'},
{id:'003',name:'周杰倫',age:21,sex:'男'},
{id:'004',name:'溫兆倫',age:22,sex:'男'}
],
},
computed:{
filPersons(){
return this.persons.filter((p)=>{//返回過濾后的數(shù)組
return p.name.indexOf(this.keyWord) !==-1
})//filter是過濾函數(shù)去除了不包含關(guān)鍵字的情況
}
}
})
通過watch函數(shù)監(jiān)測框的值是否變化
html代碼不變
script代碼
new Vue({
el:"#root",
data:{
keyWord:'',
persons:[
{id:'001',name:'馬冬梅',age:18,sex:'女'},
{id:'002',name:'周冬雨',age:19,sex:'女'},
{id:'003',name:'周杰倫',age:21,sex:'男'},
{id:'004',name:'溫兆倫',age:22,sex:'男'}
],
filPersons:[//如果沒有此的話,persons的值改變就無法變回原來了
]
},
watch:{
keyWord:{
immediate:true,//在框的值還沒變化時(shí)執(zhí)行如下函數(shù)顯示出所有的情況
handler(val){
this.filPersons = this.persons.filter((p)=>{
return p.name.indexOf(val) !==-1
})
}
}
}
})
總結(jié)
到此這篇關(guān)于Vue實(shí)現(xiàn)模糊查詢的文章就介紹到這了,更多相關(guān)Vue實(shí)現(xiàn)模糊查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue keep-alive實(shí)踐總結(jié)(推薦)
本篇文章主要介紹了Vue keep-alive實(shí)踐總結(jié)(推薦),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
vue 實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換 數(shù)字類型轉(zhuǎn)為字符串
今天小編就為大家分享一篇vue 實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換 數(shù)字類型轉(zhuǎn)為字符串,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Vue3實(shí)現(xiàn)簡約型側(cè)邊欄的示例代碼
本文主要介紹了Vue3實(shí)現(xiàn)簡約型側(cè)邊欄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
對Vue beforeRouteEnter 的next執(zhí)行時(shí)機(jī)詳解
今天小編就為大家分享一篇對Vue beforeRouteEnter 的next執(zhí)行時(shí)機(jī)詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
詳解在Vue.js編寫更好的v-for循環(huán)的6種技巧
這篇文章主要介紹了詳解在Vue.js編寫更好的v-for循環(huán)的6種技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue3中reactive和ref的實(shí)現(xiàn)與區(qū)別詳解
reactive和ref都是vue3實(shí)現(xiàn)響應(yīng)式系統(tǒng)的api,他們是如何實(shí)現(xiàn)響應(yīng)式的呢,reactive和ref又有什么區(qū)別呢,下面小編就來和大家詳細(xì)講講,希望對大家有所幫助2023-10-10
關(guān)于element?ui中的el-scrollbar橫向滾動(dòng)問題
這篇文章主要介紹了關(guān)于element?ui中的el-scrollbar橫向滾動(dòng)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

