国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

vue輸入框使用模糊搜索功能的實(shí)現(xiàn)代碼

瀏覽:41日期:2023-01-18 15:41:53

實(shí)現(xiàn)原理:

利用js的 indexOf 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。

模板中的代碼

<div class='search'><!--輸入框使用的是vant的輸入框組件--><van-search @input='autoSearch' v-model='value' placeholder='請(qǐng)輸入搜索關(guān)鍵詞' /> <span>搜索</span> </div><!--展示數(shù)據(jù)--><ulv-for='(item) in allArea' :key='item.communityId' > <li v-if='allNewArea.length != 0'>{{ item.communityName }}</li> <li v-else>{{ item.communityName }}</li></ul>

js代碼

getAreaDetail () { // 獲取數(shù)據(jù) this.$http({ method: ’post’, url: ’/appProperty/getCommunity’, }).then(res => { this.allArea = res.data this.allNewArea = res.data }) }, autoSearch () { // 模糊搜索加節(jié)流(500ms觸發(fā)一次) var allowPass = true if (!allowPass) { return } setTimeout(() => { allowPass = false this.allArea = []; this.allNewArea.filter(item => { if (item.communityName.indexOf(this.value) !== -1) { // 此處也可使用js的 search 方法實(shí)現(xiàn)indexOf 一樣效果 this.allArea.push(item); } }) }, 500); },

拓展

節(jié)流函數(shù) 節(jié)省流量節(jié)省內(nèi)存性能的一種函數(shù),可以理解為是一種性能優(yōu)化方案

//首先定義一個(gè)全局變量 當(dāng)瀏覽器窗口大小發(fā)生變化也就是重新計(jì)算窗口大小的時(shí)候觸發(fā) var canRun = true; window.onresize = function () { if (!canRun) { return } canRun = false//設(shè)置一個(gè)定時(shí)器進(jìn)行輪詢操作 setTimeout(function () {//這是要做的事情 console.log('函數(shù)節(jié)流')//最后記得重新賦值true繼續(xù)讓他取反 canRun = true//每隔1000毫秒也就是1秒鐘就執(zhí)行一次 }, 1000) }

防抖函數(shù) 當(dāng)事件觸發(fā)完成之后再延遲觸發(fā),并且只觸發(fā)一次;如果在觸發(fā)完成之前再次觸發(fā),則會(huì)再次刷新延遲

//定義方法即要做的事情 function fun(){ console.log(’onresize’) }//定義事件觸發(fā)要執(zhí)行的方法,兩個(gè)參數(shù)分別是傳入的要做的事情和定時(shí)器的毫秒數(shù)function debounce (fn, delay) {//定義一個(gè)變量作為等會(huì)清除對(duì)象 var handle;//這里用到了閉包,一個(gè)函數(shù)里面return另一個(gè)函數(shù),變量相互牽引導(dǎo)致垃圾回收機(jī)制不會(huì)銷毀handle變量 return function () {//在這里一定要清除前面的定時(shí)器,然后創(chuàng)建一個(gè)新的定時(shí)器 clearTimeout(handle) //最后這個(gè)定時(shí)器只會(huì)執(zhí)行一次也就是事件觸發(fā)完成之后延遲500毫秒再觸發(fā)(這里的變量賦值是跟定時(shí)器建立連接,進(jìn)行地址賦值,一定要重新賦值給handle handle = setTimeout(function () { fn() }, delay) }}//給瀏覽器添加監(jiān)聽事件resizewindow.addEventListener(’resize’, debounce(fun, 500));

兩者區(qū)別

防抖函數(shù)和節(jié)流函數(shù)都是用來提升性能優(yōu)化及用戶體驗(yàn)的一種方案; 防抖函數(shù)只會(huì)執(zhí)行一次,且是最后觸發(fā)的那一次,而節(jié)流函數(shù)會(huì)規(guī)律性的執(zhí)行多次;

總結(jié)

到此這篇關(guān)于vue輸入框使用模糊搜索功能的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)vue輸入框模糊搜索內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 本溪市| 华阴市| 琼结县| 临朐县| 杭锦后旗| 丰顺县| 色达县| 宣威市| 开封县| 吴川市| 武强县| 青海省| 孟州市| 和田市| 揭西县| 多伦县| 泰宁县| 吴忠市| 绥棱县| 宜兴市| 神农架林区| 西平县| 安乡县| 洛宁县| 阿尔山市| 泰顺县| 砚山县| 华安县| 招远市| 庆安县| 盐亭县| 湖州市| 临沧市| 嘉义市| 咸丰县| 富源县| 马尔康县| 鄂托克旗| 哈尔滨市| 礼泉县| 新晃|