欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue實現模糊查詢的簡單方法實例

 更新時間:2021年08月06日 09:45:29   作者:@怎擾  
這篇文章主要給大家介紹了關于Vue實現模糊查詢的簡單方法,在vue中,前端模糊搜索主要是用computed屬性實現,本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

所謂模糊查詢就是不需要用戶完整的輸入或者說全部輸入信息即可提供查詢服務,也就是用戶可以在邊輸入的同時邊看到提示的信息(其實是查詢出來匹配到的信息),百度的搜索功能就是很好的模糊查詢的例子;其實模糊查詢的原理就是給輸入框綁定oninput事件監(jiān)聽用戶輸入情況,然后每次用戶只要在輸入框中輸入了信息就觸發(fā)事件進行查詢然后實時展示;原理很簡單,但是實現起來會有一些問題,我們可以想想,每輸入一個字符都會觸發(fā)事件,那如果我們需要輸入很長的信息呢,那查詢是不是就得觸發(fā)多次?ajax連續(xù)多次觸發(fā),再加上如果我們的方法體中有操作DOM元素的方法,那么必然會給我們的瀏覽器進入假死甚至崩潰狀態(tài);那么我們有沒有辦法來解決此類問題呢?答案是:有的

Vue實現模糊查詢

通過watch和computed實現Vue實現模糊查詢

計算方法能實現的偵聽方法也能夠實現,但推薦使用計算方法,應為偵聽方法比較冗雜

先看看下面的代碼實現

通過computed(計算方法)實現

通過watch實現

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)=>{//返回過濾后的數組
                    return p.name.indexOf(this.keyWord) !==-1
                })//filter是過濾函數去除了不包含關鍵字的情況
            }
        }
    })

通過watch函數監(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,//在框的值還沒變化時執(zhí)行如下函數顯示出所有的情況
                handler(val){
                    this.filPersons = this.persons.filter((p)=>{
                    return p.name.indexOf(val) !==-1
                })
                }
            }
            
        }
    })

總結

到此這篇關于Vue實現模糊查詢的文章就介紹到這了,更多相關Vue實現模糊查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue-cli-service?build?自定義參數方式

    vue-cli-service?build?自定義參數方式

    這篇文章主要介紹了vue-cli-service?build?自定義參數方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue3生命周期原理與生命周期函數簡單應用實例分析

    vue3生命周期原理與生命周期函數簡單應用實例分析

    這篇文章主要介紹了vue3生命周期原理與生命周期函數,結合簡單實例形式分析了vue3的生命周期基本原理、以及各個階段的生命周期鉤子函數功能、使用技巧與相關注意事項,需要的朋友可以參考下
    2023-04-04
  • VUE3之Non-Props屬性的具體使用

    VUE3之Non-Props屬性的具體使用

    本文主要介紹了VUE3之Non-Props屬性的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 解決Vue中引入swiper,在數據渲染的時候,發(fā)生不滑動的問題

    解決Vue中引入swiper,在數據渲染的時候,發(fā)生不滑動的問題

    今天小編就為大家分享一篇解決Vue中引入swiper,在數據渲染的時候,發(fā)生不滑動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue實現商城上貨組件簡易版

    vue實現商城上貨組件簡易版

    這篇文章主要為大家詳細介紹了vue實現商城上貨組件簡易版,50行js代碼實現效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue登錄路由驗證的實現

    vue登錄路由驗證的實現

    這篇文章主要為大家詳細介紹了vue登錄路由驗證的實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Vue.js實現移動端短信驗證碼功能

    Vue.js實現移動端短信驗證碼功能

    現在的短信驗證碼一般為4位或6位,則頁面中會相應的顯示4個或6個文本框.好多網站需求都有此功能,今天小編給大家分享基于vue.js實現移動端短信驗證碼功能,需要的朋友參考下吧
    2017-03-03
  • 淺析Vue2/Vue3中響應式的原理

    淺析Vue2/Vue3中響應式的原理

    這篇文章主要是來和大家一起討論一下Vue2與Vue3中響應式的原理,文中的相關示例代碼簡潔易懂,對我們深入了解Vue有一定的幫助,需要的可以參考下
    2023-07-07
  • Vue中的父子組件傳值及傳方法

    Vue中的父子組件傳值及傳方法

    這篇文章主要介紹了Vue中的父子組件傳值及傳方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue?目錄樹的展開與關閉的實現

    vue?目錄樹的展開與關閉的實現

    Vue作為一款流行的前端框架,提供了一種數據驅動的方式來實現目錄樹,本文主要介紹了vue?目錄樹的展開與關閉的實現,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11

最新評論