vue3中的customRef创建一个自定义的 ref对象

customRef

· 创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制

· 小案例: 自定义 ref 实现 debounce

<template><div style="font-size: 14px;"><input v-model="text" placeholder="搜索关键字"/><p>{{text}}</p></div>
</template><script lang="ts">
// customRef:
//   创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制
//   需求: 自定义 ref 实现 debounce
import {defineComponent,customRef
} from 'vue'
// vue3.0 版本语法
export default defineComponent({setup () {// 实现函数防抖的自定义reffunction useDebouncedRef(value: any, delay = 200) {let timeout: numberreturn customRef((track, trigger) => {return {get() {console.log('get()')// 告诉Vue追踪数据track()return value},set(newValue) {console.log('set', newValue)clearTimeout(timeout)timeout = setTimeout(() => {value = newValue// 告诉vue去触发界面更新trigger()}, delay)}}})}const text = useDebouncedRef('')return {text}},
})
</script>

初始页面显示:

连续输入1111页面显示:

在连续输入了1111之后每次输入set都触发了,而get在输入完成后才最终执行 > 说明防抖生效了。

借助这个思路我们是不是可以通过customRef来自定义ref对象处理数据结果呢?

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux shell下除了某个文件外的其他文件全部删除的命令

Linux反选删除文件 最简单的方法是 # shopt -s extglob &#xff08;打开extglob模式&#xff09; # rm -fr !(file1) 如果是多个要排除的&#xff0c;可以这样&#xff1a; # rm -rf !(file1|file2) Linuxrm删除指定文件外的其他文件方法汇总 一、Linux下删除文…

【Python】导入Excel数据表的几种方式

如何导入csv、xlsx格式的Excel&#xff1b;一张数据表里有多个sheet页&#xff0c;如何获取所有sheet页名字&#xff0c;并导入每张sheet页&#xff1b; 1. 导入CSV格式的Excel表&#xff1a; import pandas as pd import numpy as npdf_datapd.read_csv(数据底表.csv) print…

渗透测试考核--两层内网 cs windows socks5

这里考核为渗透 这里是网络拓扑图 这里记录一下 两台外网 两台内网 首先拿到C段 nmap进行扫描 外网1 nmap -p 80 172.16.17.2/24 主机存活 一般都是web服务入手 所以我们指定80端口 然后去查找开放的 最后获取到2个ip Nmap scan report for 172.16.17.177 Host is u…

如何高效批量生成条形码?

条形码作为商品、库存和信息管理的基础工具&#xff0c;扮演着至关重要的角色。为了满足用户对于高效、专业、多样化的条形码生成需求&#xff0c;我们推出了一款专业高效的在线条形码生成工具。 网址&#xff1a;https://www.1txm.com/ 多样化条形码支持 易条形支持多种常见…

java文件传输简单方法

java文件传输简单方法 假设现在已经打包了一个文件&#xff08;1233444333&#xff09;&#xff0c;要将这个文件传输给另一方&#xff1a; import java.io.*; public class F_PasswordUnPassword { public static void main (String[] args)throws Exception { ByteArrayOutp…

评价体系如何构建?

本文将针对权重计算的一些常见问题进行说明&#xff1a;如组合赋权法的综合权重值如何计算&#xff1f;多层级权重如何计算&#xff1f;用多种方法计算得到的权重如何合并为综合权重用于之后的分析&#xff1f;常见的不同权重计算方法的搭配方式&#xff1f; 一、九种权重计算…

nodejs之express学习(1)

安装 npm i express使用 // 导入 const express require(express) // 创建应用 const app express() // 创建路由 app.get(/home,(req,res)>{res.end("hello express") }) app.listen(3000,()>{console.log("服务已启动~") })路由的介绍 什么是…

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续&#xff0c;且f(a0)&#xff0c;f&#xff08;b-0&#xff09;存在&#xff08;及函数的左右极限存在&#xff09;>f(x)在(a,b)上有界

神经网络:脑科学中功能MRI成像的应用及其一些相关概念

文章目录 一、MRI成像简介核磁共振成像&#xff08;MRI&#xff09;侵入式成像功能磁共振成像&#xff08;fMRI&#xff09;血氧水平依赖&#xff08;BOLD&#xff09;效应对比基线状态代理指标 二、fMRI具有延迟性及其解决方案原因解决方法 三、fMRI 数据处理1. 数据预处理2. …

【栈和队列(1)(逆波兰表达式)】

文章目录 前言什么是栈(Stack)栈方法栈的模拟实现链表也可以实现栈逆波兰表达式逆波兰表达式在栈中怎么使用 前言 什么是栈(Stack) 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0…

QB/T 1870-2015 塑料菜板检测

塑料菜板是指以聚乙烯、聚丙烯为主要原材料&#xff0c;经注射或压制成型的塑料菜板&#xff0c;通常具有抗菌性能。 QB/T 1870-2015 塑料菜板检测项目&#xff1a; 检测项目 测试标准 邵氏硬度 GB/T 2411 耐热性 QB/T 1870 耐冲击性 QB/T 1870 跌落性能 QB/T 1870 …

详解Tomcat下载安装以及IDEA配置Tomcat(2023最新)

目录 步骤一&#xff1a;首先确认自己是否已经安装JDK步骤二&#xff1a;下载安装Tomcat步骤三&#xff1a;Tomcat配置环境变量步骤四&#xff1a;验证Tomcat配置是否成功步骤五&#xff1a;为IDEA配置Tomcat 步骤一&#xff1a;首先确认自己是否已经安装JDK jdk各版本通用安装…

6、信息收集(1)

文章目录 一、DNS信息查询1、利用dig工具查询各类DNS的解析。2、使用DNS子域名爆破工具&#xff0c;针对子域名进行爆破&#xff0c;同时解析出对应的IP地址。3、利用多地Ping工具&#xff0c;查看域名真实IP。4、针对部分IP进行信息收集 二、DNS域传输实验原理方法一方法二 三…

javaEE -15( 13000字 JavaScript入门 - 2)

一&#xff1a;JavaScript(WebAPI) JS 分成三个大的部分 ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: 操作浏览器 WebAPI 就包含了 DOM BOM&#xff0c;这个是 W3C 组织规定的. (和制定 ECMAScript 标准的大佬们不是一伙人). 前面学的 JS 基础语法主要学的是 …

Unity-链接MySql5.7

链接MySql5.7 前言&#xff1a; 为什么不选择最新的MySQL8.0或者MySQL8.2呢&#xff0c;实际发现&#xff0c;如果使用这两个版本&#xff0c;虽然能够用同样的方法找到合适的dll&#xff0c;但是在编写代码的过程中往往会卡死&#xff0c;非常的影响效率&#xff0c;因此放弃…

Java入门基础:浅显易懂 关系运算符

运算符是对常量或者变量进行操作的符号&#xff0c;Java的运算符有六类&#xff1a;算术运算符、赋值运算符、自增自减运算符、关系运算符、逻辑运算符&#xff0c;三元运算符 1.关系运算符 符号作用说明等于ab 判断a和b的值是否相等!不等于a!b 判断a和b的值是否不相等>大…

python服装电商系统vue购物商城django-pycharm毕业设计项目推荐

系统面向的使用群体为商家和消费者&#xff0c;商家和消费者所承担的功能各不相同&#xff0c;所对象的权限也各不相同。对于消费者和商家设计的功能如下&#xff1a; 对于消费者设计了五大功能模块&#xff1a; &#xff08;1&#xff09; 商品信息&#xff1a;用户可在商品…

使用Echarts.js绘制多条折线图

一、页面效果 默认tab为不限&#xff0c;渲染多条折线&#xff1a; 切换tab&#xff0c;只渲染对应tab的一条折线&#xff1a; 二、功能描述 ​ 1、tab选中不限时&#xff0c;图表中同时渲染多条折线&#xff0c;对应多种类型的数据。 ​ 2、切换tab时&#xff0c;如果选中指…

Taro3+Vue3重构Mpvue小程序项目踩坑记

1、Taro小程序编译时报错&#xff1b; 原因:页面中存在小程序识别不了的标签&#xff1b;如div解决方法&#xff1a; 将div标签替换成小程序可识别的标签&#xff1b; 安装Taro中提供的插件:tarojs/plugin-html, 使其可被识别&#xff1b; 插件安装教程参考Taro官网&#xff1…

辗转相除法

其实是求a、b&#xff08;a>b&#xff09;最大公约数。 &#xff08;leetcode 1979. 找出数组的最大公约数&#xff09; 方法一&#xff1a;遍历&#xff0c;遍历的思想就是从2开始到b(或者b/2)结束&#xff0c;如果其中某个数都能被两者整除&#xff0c;那该数就是最大公约…