返回顶部
首页 > 资讯 > 前端开发 > JavaScript >uniapp项目使用防抖及节流的方案实战
  • 677
分享到

uniapp项目使用防抖及节流的方案实战

uniapp 防抖uniapp 节流防抖 2023-01-28 06:01:44 677人浏览 八月长安
摘要

目录此方案出现的理由实现方案及效果总结此方案出现的理由 小程序中无法使用Vue.directive的指令方法函数实现防抖节流传统的防抖节流方式相对繁琐 实现方案及效果 新建一个deb

此方案出现的理由

  • 小程序中无法使用Vue.directive的指令方法函数实现防抖节流
  • 传统的防抖节流方式相对繁琐

实现方案及效果

  • 新建一个debounce-view组件
  • 直接用debounce-view包裹需要防抖的内容即可,如下:
<debounce-view @thTap="buyNow">
        <view class="buy-now">立即购买</view>
</debounce-view>

防抖组件内容:

//debounce-view
<template>
	<view @click.stop="deTap">
		<slot></slot>
	</view>
</template>

<script>
	function deBounce(fn, delay = 500, immediate) {
		let timer = null,
			immediateTimer = null;

		return function() {
			let args = arguments,
				context = this;

			// 第一次触发
			if (immediate && !immediateTimer) {

				fn.apply(context, args);
				//重置首次触发标识,否则下个周期执行时会受干扰
				immediateTimer = setTimeout(() => {
					immediateTimer = null;
				}, delay);
			}
			// 存在多次执行时,重置动作需放在timer中执行;
			if (immediateTimer) clearTimeout(immediateTimer);
			if (timer) clearTimeout(timer);

			timer = setTimeout(() => {
				fn.apply(context, args);
				timer = null;
				immediateTimer = null;
			}, delay);
		}
	}
	export default {
		methods: {
			deTap: deBounce(function() {
				console.log('deTap')
				this.$emit('deTap')
			}, 500, true),
		}
	}
</script>

<style>
</style>

节流组件内容:

<template>
	<view @click.stop="thTap">
		<slot></slot>
	</view>
</template>

<script>
	// 第二版
	function throttle(func, wait) {
		var timeout;
		var previous = 0;

		return function() {
			context = this;
			args = arguments;
			if (!timeout) {
				timeout = setTimeout(function() {
					timeout = null;
					func.apply(context, args)
				}, wait)
			}

		}
	}
	export default {
		methods: {
			thTap: throttle(function() {
				this.$emit('thTap')
			}, 500)
		}
	}
</script>

<style>
</style>

总结

  • 上述方法有有点但也有缺点,优点是使用起来非常的快捷方便,缺点是时间目前是写死的,各位看官如果有新的想法或者意见还请指教小弟一二

到此这篇关于uniapp项目使用防抖及节流的文章就介绍到这了,更多相关uniapp使用防抖及节流内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: uniapp项目使用防抖及节流的方案实战

本文链接: https://lsjlt.com/news/178226.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • uniapp项目使用防抖及节流的方案实战
    目录此方案出现的理由实现方案及效果总结此方案出现的理由 小程序中无法使用vue.directive的指令方法函数实现防抖节流传统的防抖节流方式相对繁琐 实现方案及效果 新建一个deb...
    99+
    2023-01-28
    uniapp 防抖 uniapp 节流防抖
  • JavaScript中防抖和节流的实战应用记录
    目录前言为什么我们需要防抖/节流防抖节流总结前言 你可能会遇到这种的情况,一个站点使用自动填充的文本框,内容的拖拽,效果的滚动。那么,你遇到防抖和截流的概率还是很高的。为了使得这些操...
    99+
    2024-04-02
  • 如何在Vue2.x项目中使用防抖和节流功能
    本篇文章为大家展示了如何在Vue2.x项目中使用防抖和节流功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它...
    99+
    2023-06-06
  • vue中防抖和节流的使用方法
    目录前言概念防抖定义使用场景代码在vue中使用节流定义使用场景代码在vue中使用总结前言 在一个电影项目中,我想在电影的列表中,保存下拉的当前位置,防止你切换页面后,再切换回当前的电...
    99+
    2024-04-02
  • Vue中使用防抖与节流的方法
    目录何为防抖/节流防抖(debounce)节流(throttle)页面使用使用场景总结何为防抖/节流 首先先说说何为防抖与节流 防抖(debounce) 防抖就是一段时间内会多次触发...
    99+
    2024-04-02
  • JS防抖节流函数的实现与使用方式
    本篇内容介绍了“JS防抖节流函数的实现与使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一、什么是函数防抖为什么需要函数防抖?函数...
    99+
    2023-06-20
  • Vue使用lodash进行防抖节流的实现
    目录LodashdebouncethrottleLodash 在Vue中,可以通过使用Lodash库中提供的防抖和节流函数来有效地控制事件的触发次数,以提高页面性能。具体实现如下: ...
    99+
    2023-05-15
    Vue lodash防抖节流 Vue 防抖节流
  • Vue防抖与节流的使用介绍
    目录概念1. 防抖2. 节流策略Vue中的使用概念 1. 防抖 防抖策略(debounce):是当事件被触发后,延迟n秒后再执行回调函数,如果在这n秒内事件被再次触发,则重新计时. ...
    99+
    2022-12-21
    Vue节流 Vue防抖
  • PHP 防抖技术的实现方案及其在项目中的应用效果
    随着互联网的快速发展,Web应用程序的用户交互变得越来越频繁。用户在页面上的一些操作可能会触发后台数据库的读写操作,而这些操作的频繁发生可能会对系统造成压力。因此,为了保证系统的稳定性和响应速度,我们需要对用户的操作进行控制,防止频繁触发后...
    99+
    2023-10-21
    PHP 应用效果 实现方案 防抖
  • JavaScript防抖与节流的实现与注意事项
    目录概念实现测试注意事项总结概念 防抖:点击N次提交按钮,只有最后一次会发出请求。减少无效请求的次数。 节流:每点击一次按钮,都会失效一段时间。降低触发的频率。 实现 functi...
    99+
    2024-04-02
  • Javascript的防抖和节流方法怎么用
    本篇内容主要讲解“Javascript的防抖和节流方法怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript的防抖和节流方法怎么用”吧!1. 什么是防抖【解释】: 防...
    99+
    2023-06-29
  • vue函数防抖与节流的正确使用方法
    前言 1、防抖(debounce):触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间 举例:就好像在百度搜索时,每次输入之后都有联想词弹出,...
    99+
    2024-04-02
  • JS防抖节流函数的实现与使用场景
    目录一、什么是函数防抖 1、为什么需要函数防抖? 2、函数防抖的要点3、函数防抖的实现 4、函数防抖的使用场景 二、什么是函数节流 1、函数节流的要点 2、函数节流的实现3、函数节流...
    99+
    2024-04-02
  • 在Vue中使用防抖与节流,及this指向的问题
    目录使用防抖与节流,及this指向问题一顿操作后使用防抖函数所遇见的坑正常写法使用Vue中写法使用Vue中的watch的防抖简写使用防抖与节流,及this指向问题 最近项目中遇到了防...
    99+
    2024-04-02
  • JavaScript中防抖和节流的区别及适用场景
    目录前言防抖例如代码演示节流例如代码演示前言 防抖和节流,这个在我们的前端生涯中,这两个名词肯定不陌生,甚至经常被人问起: 两者有什么区别?分别用于什么场景? ps:这就是高频的面试...
    99+
    2024-04-02
  • JavaScript函数防抖与函数节流的定义及使用详解
    目录一、函数防抖(Debouncing)1、基本概念2、算法思想3、代码实现4、使用场景二、函数节流(Throlle)1、基本概念2、算法思想3、代码实现4、使用场景一、函数防抖(D...
    99+
    2022-11-13
    JavaScript函数防抖 JavaScript函数节流 JavaScript 函数防抖 节流
  • Vue组件中使用防抖和节流实例分析
    在监听频繁触发的事件时,一定要多加小心,比如 用户在输入框打字、窗口大小调整、滚动、Intersection Observer 事件。 这些事件总是被频繁触发,可能 几秒一次。如果针...
    99+
    2024-04-02
  • Vue3中的极致防抖或节流怎么使用
    这篇文章主要讲解了“Vue3中的极致防抖或节流怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3中的极致防抖或节流怎么使用”吧!在前端的开发过程中,在涉及到与用户交互的过程中是基...
    99+
    2023-07-05
  • Vue面试必备之防抖和节流的使用
    目录1. 观察者 防抖2. 事件处理器 防抖3. 注意4. 总结在监听频繁触发的事件时,一定要多加小心,比如 用户在输入框打字、窗口大小调整、滚动、Intersection Obse...
    99+
    2023-03-24
    Vue防抖 节流使用 Vue 防抖 节流 Vue防抖 Vue节流
  • JS中节流和防抖函数的实现及区别示例
    目录引言一、概念二、实现三、区别四、Lodash4-1.throttle4-2.debounce五、使用场景六、总结引言 在前端开发中,经常和DOM、BOM打交道,例如:窗口的res...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作