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

做网站一般要多钱邢台做移动网站的地方

做网站一般要多钱,邢台做移动网站的地方,搜索推广营销,做大型网站需要多少钱一、防抖和节流概述 防抖#xff08;debounce#xff09;和节流#xff08;throttle#xff09;是前端经常用到的工具函数。 在进行窗口的resize、scroll#xff0c;输入框内容校验等操作时#xff0c;如果事件处理函数调用的频率无限制#xff0c;会加重浏览器的负担…一、防抖和节流概述 防抖debounce和节流throttle是前端经常用到的工具函数。 在进行窗口的resize、scroll输入框内容校验等操作时如果事件处理函数调用的频率无限制会加重浏览器的负担导致用户体验非常糟糕。此时我们可以采用debounce防抖和throttle节流的方式来减少调用频率同时又不影响实际效果。 通常情况下我们习惯于使用lodash提供的工具函数那么如何自己封装防抖节流的hooks 首先了解下概念 防抖 维护一个计时器规定在delay时间后触发函数但是在delay时间内再次触发的话就会取消之前的计时器而重新设置。这样一来只有最后一次操作能被触发。节流 维护一个计时器规定在delay时间后触发函数但是在delay时间内再次触发的话会判断是否有延迟调用函数未执行有则返回没有则设定在delay时间后触发函数 1、函数防抖  当持续触发事件时一定时间段内没有再触发事件事件处理函数才会执行一次如果设定的时间到来之前又一次触发了事件就重新开始延时。 function debounce(fn, ms) {let timer;return function(...args) {if (timer) {clearTimeout(timer)}timer setTimeout(() {fn(...args)timer null;}, ms);} }2、函数节流 当持续触发事件时保证一定时间段内只调用一次事件处理函数。 function throttle(fn, ms) { let timer; return function(...args) { if (timer) return;canRun false;timer setTimeout(() { fn(...args);timer null;}, ms); } } 二、react当中防抖细节 防抖函数必须在只执行一次的位置调用。在类组件中放在constructor里或者变量函数生成的时候都可以因为类组件只会初始化一次后续组件中绑定的函数永远是不变的因此依据闭包原理保存下来的状态会起作用。 而在函数式组件中每次render时内部函数会重新生成并绑定到组件上去。当组件只有一个state会影响render时我们 狂点按钮只会触发点击事件不会重新渲染当前组件绑定的事件函数没有变化防抖函数是同一个因此防抖起作用 但是当有其他state影响渲染后 狂点按钮触发事件不重新渲染count2发生变化重新渲染handleClick重新生成并绑定到组件原有函数失效防抖失效原有函数延迟一定后执行counter1发生变化 流程的对比就是这样了现在你明白为什么正常的防抖函数不能用在 reack hook 里了么 那么怎么实现react hook防抖呢核心思想就是保证每次渲染时绑定到组件上的函数是同一个防抖函数。 防抖hook import { useCallback, useEffect, useRef } from react; export interface UseRefParams {fn: (_args: any) void;timer: ReturnTypetypeof setTimeout | null; } // React anti shake function export const useDebounce (fn: (_args: any) void, delay 2000) {const { current } useRefUseRefParams({ fn, timer: null });useEffect(() {current.fn fn;}, [current, fn]);return useCallback((args: any) {if (current.timer) {clearTimeout(current.timer);}current.timer setTimeout(() {current.fn(args);}, delay);},[current, delay]); }; 三 、节流Hook 在react当中节流注意细节与防抖一样这里不做陈述直接上代码 import { useCallback, useEffect, useRef } from react; export interface UseRefParams {fn: (_args: any) void;timer: ReturnTypetypeof setTimeout | null; }// React throttling function export const useThrottle (fn: (_args: any) void, delay 2000) {const { current } useRefUseRefParams({ fn, timer: null });useEffect(function () {current.fn fn;},[current, fn]);return useCallback(function f(args: any) {if (!current.timer) {current.timer setTimeout(() {current.timer null;}, delay);current.fn(args);}},[current, delay]); };
http://www.tj-hxxt.cn/news/141750.html

相关文章:

  • 苏州市住房城乡建设局网站免费h5游戏制作平台
  • 怎么做网站和注册域名打开网站弹出广告代码
  • 国外免费建购物网站wordpress 4.8.2漏洞
  • 坪山附近公司做网站建设哪家效益快2018钓鱼网站建设
  • 免费无广告建站北京php培训网站建设
  • 宠物网站开发文档网站做文件检查
  • 网站关键词越多越好吗建设网站需要下载神呢软件吗
  • tk域名官方网站合肥建设网站的公司
  • 中国空间站vr全景郑州公司网站建设
  • .天津网站建设自助商城网站建设
  • 国外炫酷网站欣赏wordpress 侧边导航
  • 培训教育行业网站建设方案微信公众号怎么做链接网站
  • 费县网站建设如何修改wordpress的字体大小
  • cnzz网站建设教学黄龙云 加强网站建设
  • 网站建设流程是什么编程scratch
  • 网站从建设到上线流程如何做网站效果更好
  • 福建平潭建设局网站搭建网站知识
  • 免费网站推广渠道网络营销主要做什么
  • 重庆选科网站app网站的优点
  • 网站建设公司十大怎么做租号网站
  • 仓储设备东莞网站建设阿里云可以几个网站
  • 昆山便宜做网站无锡网站建设哪家做的比较好
  • 网站建设置顶形象墙在线设计网站
  • 什么网站都可以进入的浏览器网站制作的动画怎么做的
  • 电商网站规划昆明网站建设推广公司哪家好
  • 百度建设网站的目的5000元可注册劳务公司吗
  • 河北省承德市建设局网站上不去有哪些做二手的网站
  • 4免费网站建站网站搭建好有什么内容可以修改
  • 连锁酒店设计网站建设国外网站做调查
  • 淘宝客网站推广工具欧米伽男士手表官方网站