成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何在Vue2.x項(xiàng)目中使用防抖和節(jié)流功能-創(chuàng)新互聯(lián)

本篇文章為大家展示了如何在Vue2.x項(xiàng)目中使用防抖和節(jié)流功能,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),源城企業(yè)網(wǎng)站建設(shè),源城品牌網(wǎng)站建設(shè),網(wǎng)站定制,源城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,源城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

vue是什么軟件

Vue是一套用于構(gòu)建用戶(hù)界面的漸進(jìn)式JavaScript框架,Vue與其它大型框架的區(qū)別是,使用Vue可以自底向上逐層應(yīng)用,其核心庫(kù)只關(guān)注視圖層,方便與第三方庫(kù)和項(xiàng)目整合,且使用Vue可以采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫(kù)開(kāi)發(fā)復(fù)雜的單頁(yè)應(yīng)用。

utils:

// 防抖
export const debounce = (func, wait = 3000, immediate = true) => {
 let timeout = null;
 return function() {
  let context = this;
  let args = arguments;
  if (timeout) clearTimeout(timeout);
  if (immediate) {
   var callNow = !timeout; //點(diǎn)擊第一次為true 時(shí)間內(nèi)點(diǎn)擊第二次為false 時(shí)間結(jié)束則重復(fù)第一次
   timeout = setTimeout(() => {
    timeout = null;
   }, wait); //定時(shí)器ID
   if (callNow) func.apply(context, args);
  } else {
   timeout = setTimeout(function() {
    func.apply(context, args);
   }, wait);
  }
 };
};
// 時(shí)間戳方案
export const throttleTime = (fn, wait = 2000) => {
 var pre = Date.now();
 return function() {
  var context = this;
  var args = arguments;
  var now = Date.now();
  if (now - pre >= wait) {
   fn.apply(context, args);
   pre = Date.now();
  }
 };
};
// 定時(shí)器方案
export const throttleSetTimeout = (fn, wait = 3000) => {
 var timer = null;
 return function() {
  var context = this;
  var args = arguments;
  if (!timer) {
   timer = setTimeout(function() {
    fn.apply(context, args);
    timer = null;
   }, wait);
  }
 };
};

vue中使用:

<template>
 <div class="main">
  <p>防抖立即執(zhí)行</p>
  <button @click="click1">點(diǎn)擊</button>

  <br />

  <p>防抖不立即執(zhí)行</p>
  <button @click="click2">點(diǎn)擊</button>

  <br />

  <p>節(jié)流時(shí)間戳方案</p>
  <button @click="click3">點(diǎn)擊</button>

  <br />

  <p>節(jié)流定時(shí)器方案</p>
  <button @click="click4">點(diǎn)擊</button>
 </div>
</template>

<script>
import { debounce, throttleTime, throttleSetTimeout } from './utils';
export default {
 methods: {
  click1: debounce(
   function() {
    console.log('防抖立即執(zhí)行');
   },
   2000,
   true
  ),
  click2: debounce(
   function() {
    console.log('防抖不立即執(zhí)行');
   },
   2000,
   false
  ),
  click3: throttleTime(function() {
   console.log('節(jié)流時(shí)間戳方案');
  }),
  click4: throttleSetTimeout(function() {
   console.log('節(jié)流定時(shí)器方案');
  })
 },
};
</script>

<style scoped lang="scss">
* {
 margin: 0;
 font-size: 20px;
 user-select: none;
}
.main {
 position: absolute;
 left: 50%;
 transform: translateX(-50%);
 width: 500px;
}
button {
 margin-bottom: 100px;
}
</style>

解釋?zhuān)?/h3>

防抖:

  立即執(zhí)行版本:immediate為true,則點(diǎn)擊第一次就執(zhí)行,再繼續(xù)點(diǎn)擊則不執(zhí)行,當(dāng)wait時(shí)間結(jié)束后,再點(diǎn)擊則生效,也就是只執(zhí)行第一次。

  原理:

    點(diǎn)擊第一次不存在timeoutID,并且callNow為true,則立即執(zhí)行目標(biāo)代碼,點(diǎn)擊第二次時(shí)存在了timeoutID,并且callNow為false,所以不執(zhí)行目標(biāo)代碼,當(dāng)wait時(shí)間結(jié)束后,把timeoutID設(shè)為null,則開(kāi)始重復(fù)立即執(zhí)行邏輯。

  不立即執(zhí)行版:immediate為false,則點(diǎn)擊第一次不執(zhí)行,當(dāng)wait時(shí)間結(jié)束后,才生效,也就是無(wú)論點(diǎn)擊多少次,只執(zhí)行最后一次點(diǎn)擊事件

  原理:

    使用setTimeout延遲執(zhí)行事件,如果多次觸發(fā),則clearTimeout上次執(zhí)行的代碼,重新開(kāi)始計(jì)時(shí),在計(jì)時(shí)期間沒(méi)有觸發(fā)事件,則執(zhí)行目標(biāo)代碼。

節(jié)流:

  連續(xù)觸發(fā)事件時(shí)以wait頻率執(zhí)行目標(biāo)代碼。

上述內(nèi)容就是如何在Vue2.x項(xiàng)目中使用防抖和節(jié)流功能,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱(chēng):如何在Vue2.x項(xiàng)目中使用防抖和節(jié)流功能-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article36/dcjopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄品牌網(wǎng)站建設(shè)、軟件開(kāi)發(fā)服務(wù)器托管、云服務(wù)器、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)
宁安市| 常宁市| 兰州市| 富民县| 吉林省| 南汇区| 肇州县| 乐都县| 文化| 武山县| 南木林县| 阿克陶县| 黎平县| 上蔡县| 福州市| 汝州市| 晋中市| 蓝田县| 乌审旗| 博白县| 武强县| 惠安县| 会东县| 平谷区| 蓬莱市| 师宗县| 清涧县| 泰宁县| 阿鲁科尔沁旗| 龙岩市| 琼结县| 三都| 清徐县| 泗阳县| 建昌县| 诸暨市| 徐水县| 元阳县| 县级市| 剑河县| 杨浦区|