当前位置: 首页 > news >正文

vue 中使用防抖和节流

防抖和节流是我们在开发过程中常用优化性能的方式

那么在 vue 中怎么使用呢:

在公共方法中(如 public.js 中),加入函数防抖和节流方法

// 防抖
export function _debounce(fn, delay) {

    var delay = delay || 200;
    var timer;
    return function () {
        var th = this;
        var args = arguments;
        if (timer) {
            clearTimeout(timer);
        }
        timer = setTimeout(function () {
            timer = null;
            fn.apply(th, args);
        }, delay);
    };
}
// 节流
export function _throttle(fn, interval) {
    var last;
    var timer;
    var interval = interval || 200;
    return function () {
        var th = this;
        var args = arguments;
        var now = +new Date();
        if (last && now - last < interval) {
            clearTimeout(timer);
            timer = setTimeout(function () {
                last = now;
                fn.apply(th, args);
            }, interval);
        } else {
            last = now;
            fn.apply(th, args);
        }
    }
}

在需要使用的组件引用

import { _debounce } from "@/utils/public";
1
在 methods 中使用

  methods: {
    // 改变场数
    changefield: _debounce(function(_type, index, item) {
        // do something ...
    }, 200)
  }

 

相关文章:

  • element-ui 关于日期范围选择控件,如何限制只能选择30天
  • JS判断数组里是否有重复元素的方法小结
  • 防抖函数
  • vue中watch的详细用法,带deep,immediate
  • VScode ctrl+鼠标左键点击 无法定位的问题
  • 正则 校验英文逗号字符串
  • 修改window本地hosts文件,修改域名指向
  • express中处理json数据
  • vue watch 监听对象的某个属性
  • axios上传的时候,.then,.catch都触发了
  • input上传文件选择同一文件时change事件不生效解决方法
  • vue数据变了,视图没有更新解决方法
  • 详解elementUI中input框无法输入的问题
  • vue实现表单未编辑或未保存离开弹窗提示功能
  • vue中父组件异步获取数据给子组件传参
  • [nginx文档翻译系列] 控制nginx
  • 「译」Node.js Streams 基础
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 08.Android之View事件问题
  • Apache的基本使用
  • css选择器
  • Java多线程(4):使用线程池执行定时任务
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • text-decoration与color属性
  • vue2.0项目引入element-ui
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 大整数乘法-表格法
  • 近期前端发展计划
  • 京东美团研发面经
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何解决微信端直接跳WAP端
  • 使用docker-compose进行多节点部署
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • k8s使用glusterfs实现动态持久化存储
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 阿里云重庆大学大数据训练营落地分享
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # include “ “ 和 # include < >两者的区别
  • #图像处理
  • $(selector).each()和$.each()的区别
  • (9)STL算法之逆转旋转
  • (arch)linux 转换文件编码格式
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (安卓)跳转应用市场APP详情页的方式
  • (二十四)Flask之flask-session组件
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复