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

利用Vue3的新API(customRef)实现防抖效果

customRef是创建一个自定义的 ref,然后显式声明对其依赖追踪和更新触发的控制方式。因为ref是直接更新的,数据修改会马上更新,而customRef可以认为控制更新的过程,比如可以利用这个api控制 空格输入限制、数据更新速度控制、违规内容、emoji输入限制等等

下面用customRef实现一个 数据更新带防抖效果的hook

import { customRef } from "vue"export default function <T>(initValue: T, delay: number = 1000) {let timer: numberlet delayValue = customRef((track, trigger) => {return {get: () => {track() //核心,告诉Vue持续关注这个值return initValue},set: (value: T) => {clearTimeout(timer)timer = setTimeout(() => {initValue = valuetrigger() //核心,告诉Vue持续关注这个值要更新了}, delay)},}})return { delayValue }
}

使用这个hook

//.vue文件
<template><div>{{ name }}</div><input v-model="name" placeholder="请输入名称">
</template><script setup lang='ts' name='Layout'>
import useDelayRef from '@/hooks/useDelayRef';
let { delayValue: name } = useDelayRef<string>('Ashley', 3000)
</script>

ps:简单记录,如有不恰当之处,欢迎交流

http://www.lryc.cn/news/311264.html

相关文章:

  • 【Linux】在 Ubuntu 系统下使用 Screen 运行 Python 脚本
  • jxls——自定义命令设置动态行高
  • 前端面试练习24.3.2-3.3
  • 优先级队列(Java )
  • 大宋咨询如何进行汽车门店6S标准现场检查
  • 仿牛客网项目---点赞模块的实现
  • 【AI视野·今日CV 计算机视觉论文速览 第300期】Fri, 1 Mar 2024
  • 【单片机学习的准备】
  • 力扣hot100:438.找到字符串中所有字母异位词
  • Kali Linux 2024.1
  • springboot启动加载
  • 基于Java的智能停车场管理系统(Vue.js+SpringBoot)
  • ESD Clamp cell是什么?
  • 费率电能表
  • 2张图2秒钟3D重建!这款AI工具火爆GitHub,网友:忘掉Sora
  • C++高级面试题:请解释 C++ 中的指针和引用之间的区别。
  • Git 配置处理客户端无法正常访问到 github 原网站时,npm 下载依赖包失败的问题
  • 前端爬虫+可视化Demo
  • keepAlive
  • 蓝桥杯练习题——dp
  • kotlin基础语法
  • 淘宝天猫商家爬虫工具 电商采集软件使用教程
  • 建库建表时,最容易忽略的10个细节
  • 【基础知识】什么是 PPO(Proximal Policy Optimization,近端策略优化)
  • 程序员如何选择职业赛道?
  • [LeetBook]【学习日记】寻找和为指定数字的连续数字
  • 阿里云中小企业扶持权益
  • 2核4g服务器能支持多少人访问?并发数性能测评
  • Anthropic官宣Claude3:建立大模型 推理、数学、编码和视觉等方面 新基准
  • STM32 TIM编码器接口