电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Vue中函數防抖節流的理解及應用實現

瀏覽:58日期:2023-01-24 16:09:26

防抖和節流的目的都是為了減少不必要的計算,不浪費資源,只在適合的時候再進行觸發計算。

一、函數防抖

定義在事件被觸發n秒后再執行回調,如果在這n秒內又被觸發,則重新計時;典型的案例就是輸入搜索:輸入結束后n秒才進行搜索請求,n秒內又輸入的內容,就重新計時。

實現原理函數防抖的基本思想是設置一個定時器,在指定時間間隔內運行代碼時清楚上一次的定時器,并設置另一個定時器,知道函數請求停止并超過時間間隔才會執行。

使用場景文本框輸入搜索(連續輸入時避免多次請求接口)

代碼實現

/** * 函數防抖 */export function debounce(fn, delay) { // 記錄上一次的延時器 var timer = null; var delay = delay || 200; return function() { var args = arguments; var that = this; // 清除上一次延時器 clearTimeout(timer) timer = setTimeout(function() { fn.apply(that,args) }, delay); }}

二、函數節流

定義規定在一個單位時間內,只能觸發一次函數,如果這個單位時間內觸發多次函數,只有一次生效; 典型的案例就是鼠標不斷點擊觸發,規定在n秒內多次點擊只有一次生效。

實現原理其原理是用時間戳來判斷是否已到回調該執行時間,記錄上次執行的時間戳,然后每次觸發 scroll 事件執行回調,回調中判斷當前時間戳距離上次執行時間戳的間隔是否已經到達 規定時間段,如果是,則執行,并更新上次執行的時間戳,

使用場景

resize、scroll、mousemove等事件觸發監聽

代碼實現

/** * 函數節流 */export function throttle(fn,delay){ var lastTime; var timer; var delay = delay || 200; return function() { var args = arguments; // 記錄當前函數觸發的時間 var nowTime = Date.now(); if (lastTime && nowTime - lastTime < delay) { clearTimeout(timer); timer = setTimeout(function () { // 記錄上一次函數觸發的時間 lastTime = nowTime; // 修正this指向問題 fn.apply(this, args); }, delay); }else{ lastTime = nowTime; fn.apply(this, args); } }}

三、在Vue中使用函數防抖實現輸入框搜索

效果圖如下

Vue中函數防抖節流的理解及應用實現

新建common.js文件

/** * 函數防抖 */export function debounce(fn, delay) { // 記錄上一次的延時器 var timer = null; var delay = delay || 200; return function() { var args = arguments; var that = this; // 清除上一次延時器 clearTimeout(timer) timer = setTimeout(function() { fn.apply(that,args) }, delay); }}

在vue組件中引入

import {debounce} from ’@/utils/common.js’

在組件中使用

<div class='white-search-bar'> <div class='search-bar-item'> <span class='iconfont icon-search'></span> <input : type='text' maxlength='8' placeholder='應用搜索' v-model='keyword' @keyup='appSearch' @focus='onSearchFocus' @blur='onSearchBlur'> </div> <span @click='appSearchCancel' v-if='isSearchFocus'>取消</span> </div>methods:{appSearch:debounce(function(){ this.getAppList() },300)}

參考閱讀

https://www.jqhtml.com/20268.html

到此這篇關于Vue中函數防抖節流的理解及應用實現的文章就介紹到這了,更多相關Vue 函數防抖節流內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 有声小说,听书,听小说资源库-听世界网 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 制冷采购电子商务平台——制冷大市场 | 冷却塔减速机器_冷却塔皮带箱维修厂家_凉水塔风机电机更换-广东康明冷却塔厂家 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 数字展示在线_数字展示行业门户网站 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 杭州用友|用友软件|用友财务软件|用友ERP系统--杭州协友软件官网 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 福建自考_福建自学考试网| YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 |