在vue+element ui框架里實(shí)現(xiàn)lodash的debounce防抖
事情起因在:我使用element ui框架里的遠(yuǎn)程搜索框,在單選時(shí),組件內(nèi)部已經(jīng)做了防抖,query是在一段時(shí)間內(nèi)的字符串。但是在多選時(shí),并沒有做防抖,而是每輸入一個(gè)字符都要向后臺(tái)發(fā)一次請(qǐng)求,所以必須防抖,官方推薦使用lodash的debounce
在解決這個(gè)問題時(shí),我遇到的坎兒主要有以下:
我首先在項(xiàng)目里用npm安裝lodash,先全局安裝,然后安裝到項(xiàng)目
npm install -g lodash npm install --save lodash
安裝后,我就在我要用防抖的組件里,引入lodash
var lodash = require('lodash');
以下就開始了走彎路
我百度后,查詢到debounce總和keyup一起使用,所以我就在我的搜索框里綁定了keyup事件,但是綁定的事件并沒有生效,通過查詢得知,在element ui封裝了input,所以要在后面加上.native才可以覆蓋原來的事件
<el-select
v-model="AddCandidateFrom.follow_hr"
filterable
multiple
placeholder="請(qǐng)選擇跟進(jìn)HR"
@keyup.native="getRemoteFollow"
:loading="followLoading"
class="select-item">
<el-option
v-for="item in followOption"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
keyup成功綁定事件后,我發(fā)現(xiàn)得到的結(jié)果并不是我想要的,因?yàn)閗eyup綁定事件里得到的參數(shù)是我在鍵盤里輸入的一個(gè)字符,但我想要得到的是輸入后的整個(gè)字符串。所以我就又開始使用watch監(jiān)聽this.AddCandidateFrom.follow_hr
監(jiān)聽this.AddCandidateFrom.follow_hr后,我發(fā)現(xiàn)并沒有用,因?yàn)樗淼氖嵌噙x框中已經(jīng)選中了的字符串,正在輸入的字符串不會(huì)記錄進(jìn)去,所以我又回退到使用遠(yuǎn)程搜索本身的方法,綁定remote-methods
<el-select
v-model="AddCandidateFrom.follow_hr"
filterable
multiple
remote
placeholder="請(qǐng)選擇跟進(jìn)HR"
:remote-method="getRemoteFollow"
:loading="followLoading"
class="select-item">
<el-option
v-for="item in followOption"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
綁定了remote-method方法后,我就使用傳統(tǒng)的方法定義綁定的方法(),沒有使用es6簡(jiǎn)寫的方法,這是因?yàn)椋褂胠odash.debounce返回的是一個(gè)函數(shù)。如果有參數(shù),則在function空的形參列表里加入
getRemoteFollow: lodash.debounce(function () {
console.log('111');
}, 300),
以上這篇在vue+element ui框架里實(shí)現(xiàn)lodash的debounce防抖就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用kbone解決Vue項(xiàng)目同時(shí)支持小程序問題
這篇文章主要介紹了使用kbone解決Vue項(xiàng)目同時(shí)支持小程序問題,本文通過一個(gè)todo的例子跟大家詳細(xì)介紹,需要的朋友可以參考下2019-11-11
Vue中實(shí)現(xiàn)滾動(dòng)加載與無限滾動(dòng)
本文主要介紹了Vue中實(shí)現(xiàn)滾動(dòng)加載與無限滾動(dòng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
關(guān)于vue.js組件數(shù)據(jù)流的問題
本篇文章主要介紹了關(guān)于vue.js組件數(shù)據(jù)流的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
vue獲取DOM元素并設(shè)置屬性的兩種實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄獀ue獲取DOM元素并設(shè)置屬性的兩種實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09

