Vue节流(throttling)微项目

本文介绍了一个Vue.js项目,通过节流技术实现图片在鼠标移动时的跟随效果,减少了mousemove事件的触发次数,优化了性能。项目中使用setTimeout来延迟渲染CSS样式,并结合v-bind绑定style,以及变量var(--pageX)进行动态定位。
摘要由CSDN通过智能技术生成

一、节流概念

n秒内连续触发事件,最终只执行一次,及稀释函数执行频率(被稀释次数 = 总次数 / 定时器延迟时间),类似角色技能平A,eg:

    show(e) {
      this.timer = setTimeout(() => {
        this.pageX = e.pageX + "px";
        this.pageY = e.pageY + "px";
        this.timer = null;
      }, 50);

二、节流微项目

项目要求:

图片跟随鼠标移动,减少所被触发次数

项目简述:

  1. 鼠标事件绑定,mousemove

  1. css样式延迟渲染,setTimeout

  1. 图片位置绑定利用v-bind绑定style

  1. style中使用var(--pageX)进行获取与渲染

项目代码块:

data模块:

 data() {
     return {
      pageX: "0px",
      pageY: "0px",
      timer: null,
      count: 0,
    };
  },

methods模块:

 methods: {   
    show(e) {
      this.timer = setTimeout(() => {
        this.pageX = e.pageX + "px";
        this.pageY = e.pageY + "px";
        this.timer = null;
      }, 50);
    },

    imgPosition(){
      if(this.pageX === this.pageX || this.pageY === this.pageY){
        this.count += 1;
        console.log(this.count);
      }
    }
  },

项目展示:

节流移动

普通移动

小白博主一枚,如代码有不足之处,望各位指正(希望生活更加精彩,爱生活~)

防抖概念链接:https://blog.csdn.net/Chris__Feng/article/details/128841255

节流微项目链接:https://github.com/ChrisF1109/Vue-debounce-throttling-.git,位于master分支中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值