当前位置:首页 > VUE

vue实现节流

2026-02-10 04:00:35VUE

节流的概念

节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于高频事件(如滚动、输入、鼠标移动等)的性能优化。

vue实现节流

在 Vue 中实现节流的方法

使用 Lodash 的 _.throttle

Lodash 提供了现成的节流函数,可直接在 Vue 中使用:

vue实现节流

import { throttle } from 'lodash';

export default {
  methods: {
    handleScroll: throttle(function() {
      console.log('Scroll event throttled');
    }, 300),
  },
  mounted() {
    window.addEventListener('scroll', this.handleScroll);
  },
  beforeDestroy() {
    window.removeEventListener('scroll', this.handleScroll);
  }
};

自定义节流函数

若不想引入 Lodash,可手动实现节流逻辑:

export default {
  methods: {
    throttle(func, delay) {
      let lastCall = 0;
      return function(...args) {
        const now = new Date().getTime();
        if (now - lastCall < delay) return;
        lastCall = now;
        func.apply(this, args);
      };
    },
    handleClick() {
      this.throttle(() => {
        console.log('Button clicked (throttled)');
      }, 1000)();
    },
  },
};

在模板中直接调用节流方法

通过 @click 绑定节流后的方法:

<template>
  <button @click="throttledClick">Click Me</button>
</template>

<script>
export default {
  methods: {
    throttledClick: throttle(function() {
      console.log('Throttled click action');
    }, 1000),
  },
};
</script>

注意事项

  • 移除事件监听器:在组件销毁时(beforeDestroyonUnmounted)需清理事件监听,避免内存泄漏。
  • 箭头函数与 this:若使用自定义节流函数,注意通过 func.apply(this, args) 绑定正确的上下文。
  • Vue 3 组合式 API:在 setup() 中可直接使用 refonMounted 实现类似逻辑。

以上方法可根据项目需求选择,推荐优先使用 Lodash 以简化代码。

标签: vue
分享给朋友:

相关文章

vue实现anchor

vue实现anchor

Vue 实现 Anchor(锚点)功能 在 Vue 中实现锚点功能可以通过多种方式完成,以下是几种常见的方法: 使用 HTML 原生锚点 HTML 原生锚点是最简单的方式,通过 <a>…

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue 实现blog

vue 实现blog

Vue 实现博客的基本步骤 使用 Vue 实现博客可以分为前端和后端两部分,前端使用 Vue.js 框架,后端可以选择 Node.js、Python 或其他服务端语言。以下是一个基于 Vue 的博客实…

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue 实现排序

vue 实现排序

Vue 实现排序的方法 使用计算属性实现排序 通过计算属性对数组进行排序,可以保持原始数据不变。示例代码展示了如何对列表按名称升序排序: <template> <div>…