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

微信属于营销型网站设计素材网站特点

微信属于营销型网站,设计素材网站特点,wordpress加入侧边栏,建站如何收费在前端开发中,节流(throttle)和防抖(debounce)是两个常见的性能优化技巧。它们的核心目的都是限制函数执行的频率,避免函数被高频率触发导致性能问题。今天我通过一个“技能冷却”的小案例,带大…

        在前端开发中,节流(throttle)和防抖(debounce)是两个常见的性能优化技巧。它们的核心目的都是限制函数执行的频率,避免函数被高频率触发导致性能问题。

        今天我通过一个“技能冷却”的小案例,带大家直观感受一下节流的作用。


1.什么是节流?

        节流(throttle):一个函数在指定时间内只会执行一次,即使在这段时间内被多次触发。

生活类比:

  • 游戏里的技能冷却 → 技能触发后要等几秒才能再次使用。

  • 电梯关门按钮 → 按了之后电梯要等一段时间才会关门,多次点击没用。

这就是节流的应用场景。

2.案例:技能冷却按钮

       现在写一个react组件模拟技能触发和冷却。

import React, { useState, useEffect, useRef } from "react";export default function List() {const [cooldowns, setCooldowns] = useState([{ title: "大灭", cd: 0, maxCd: 9 },{ title: "大米", cd: 0, maxCd: 8 },{ title: "飞行", cd: 0, maxCd: 5 },{ title: "大招", cd: 0, maxCd: 30 },]);const ref1 = useRef(null);// 每秒减少冷却时间useEffect(() => {const timer = setInterval(() => {setCooldowns((prev) => {return prev.map((item) => {if (item.cd > 0) {return { ...item, cd: item.cd - 1 };}return item;});});}, 1000);return () => clearInterval(timer);}, []);const handleSkill = (index) => {if (cooldowns[index].cd === 0) {setCooldowns((prev) => {return prev.map((item, i) => {if (i === index) {ref1.current.innerHTML = ${item.title}触发了;return { ...item, cd: item.maxCd };}return item;});});}};return (<div>{cooldowns.map((skill, index) => (<p key={index}>{skill.title} {skill.cd > 0 ? (还有 ${skill.cd}s) : "(可使用)"}<button disabled={skill.cd > 0} onClick={() => handleSkill(index)}>{skill.title}</button></p>))}<h1 ref={ref1}></h1></div>);
}

        下面是效果图。

效果:

  • 点击技能按钮 → 显示“技能触发了”

  • 按钮进入冷却,显示倒计时

  • 冷却结束 → 按钮恢复可点

这正是节流的直观表现:在冷却时间内,你点多少次按钮都不会触发效果。


        实现的原理就是只要在数组中我们的cd不为0,那么按钮disabled就为true无法去点击,以及只要不为0那么就去递减。而且递减的时候需要展示到页面上面。

3.节流 vs 防抖

  • 节流(throttle):间隔时间内只执行一次(技能冷却、scroll 监听、按钮防连点)。

  • 防抖(debounce):触发后延迟一段时间才执行,期间如果再次触发会重置(搜索输入框、窗口 resize)。


总结

        通过游戏技能冷却的例子,我们能直观理解“节流”的含义:限制执行频率。 在前端项目中,合理使用节流/防抖,可以避免资源浪费、提升性能。

        所以,下次你看到按钮被“禁用一段时间”,别忘了,它可能就是节流在起作用 😎。

http://www.dtcms.com/a/572141.html

相关文章:

  • 网站设计顺德域名备案的价格
  • 网站上线前需要做什么建设仿优酷视频网站
  • 高端模板网站建设价格品牌网站建设小7蝌蚪
  • 上海策朋网站设计公司在阿里云做的网站怎么移动
  • seo优化网站优化排名shopex更改数据密码后网站打不开了
  • 网站建设重要一些做义工的旅游网站
  • 青海贸易网站建设公司wordpress最新博客主题
  • 佛山网站建设计万表网
  • .net 免备案网站空间网盘搜索神器
  • 电商网站建设基本流程现在哪个网站还做白拿
  • 上线公司 企业网站中国交通建设集团有限公司级别
  • 个人做网站时不要做什么样的网站工程建设的概念是什么
  • 建设部网站为什么打不开网络营销十大经典案例
  • 做网站后台怎么搭建兼职做国外网站钻前
  • wordpress站点地址无法更改编程培训班哪个好
  • asp网站开发平台免费oa办公系统
  • 在一个网站上面发布广告怎么做广州有什么好玩的旅游景点
  • 网站网页开发公司车陂手机网站建设报价
  • 台州网站定制seo优化网
  • 中国建设银行青浦支行网站北京做网络工程公司的网站
  • 陇南市建设局官方网站做网站不备案会怎样
  • 杭州网站搜索南昌哪里可以做电商网站
  • 网站建设vps网络工程和软件工程的区别
  • 阿里云网站建设初衷网络舆情监测存在的问题
  • 网站建设客户管理系统网站优化内容有哪些
  • 网站推广模式门户论坛模板
  • 网站建设如何快速增加用户网站建设服务清单
  • 手机网站总是自动跳转六安网络科技股份有限公司
  • 怎么网站搜索排名优化可画canvas官网
  • 有没类似建设通的免费网站网站怎样做链接