vue3的customRef

news2024/12/24 2:25:40

文章来源:我的博客,欢迎访问,不欢迎攻击,谁攻击谁儿子

customRef

  • 作用:实现一个自定义的ref,并对其依赖项跟踪和更新触发进行显示控制

像是下面的代码一样:

<template>
  <div class="lim">
    <div class="btns">
      <el-input type="text" v-model="keyWord">
      </el-input>
    </div>
    {{ keyWord }}
  </div>
</template>

<script setup>
// 使用vue内置提供的ref
// let keyWord = ref('hello')
import { customRef } from 'vue'

const myRef = (val) => {
  let timer
  // 接收一个函数,里面的函数必须返回一个对象
  return customRef((track, trigger) => {
    return {
      get: function () {
        console.log('获取了customRef')
        // 追踪改变,在return之前调用一下
        track()
        return val
      },
      set: function (newVal) {
        console.log('有人set了')
        clearTimeout(timer)
        // 实现防抖
        timer = setTimeout(() => {
          // 1.改数据
          val = newVal
          // 通知vue去重新解析模板
          // 2.通知解析模板
          trigger()
        }, 500)
      }
    }
  })
}

// 使用程序员自定义的ref
let keyWord = myRef('hello')
</script>

在这里插入图片描述

你可以通过自定义一个ref来实现某些功能,例如像这里的就是实现了防抖

但要注意其中的customRef接收的两个参数,
需要分别在get,set中分别在return之前进行调用一下

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

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

相关文章

web期末作业(html+css)-中华美食介绍(附带文档)

作品展示 web期末作业-中华美食介绍 首页包含功能&#xff1a; 轮播图&#xff1a;在首页顶部设置一个可自动轮播的图片展示区域&#xff0c;展示多张宣传图片或产品图片&#xff0c;提升页面的视觉效果和吸引力。 鼠标滑过文字变色&#xff1a;为首页的一些关键文字或链接添…

python安装opencv出错 PEP 517

我的 python 版本是 3.6 的&#xff0c;当需要安装 opencv 时&#xff0c;使用pip install opencv-python 命令进行安装时&#xff0c;出现错误&#xff0c;如下所示&#xff1a; Building Custom Rule C:/Users/liqian/AppData/Local/Temp/pip-install-6jpavinn/opencv-pytho…

element 树形表格每次刷新列表保存展开关闭状态

树形表格保存展开关闭状态 编辑数据后&#xff0c;记录用户操作行的展开和关闭 注意&#xff0c;以下列子是默认展开&#xff0c;记录合上的状态 注意 row-key 需要给每行一个key expand-change 点击行的操作 <el-tableref"tableItem"slot"table":data…

Matrix Breakout:2 Morpheus(靶机详细渗透测试过程记录)

nmap -sS -p 80 -oG - 192.168.192.0/24 | grep open 探测网段下开放80端口的主机。 扫描目录 发现该界面 存储型xss 发现file参数貌似可以控制读取文件目标。 尝试利用伪协议读取&#xff0c;文件内容。 解码&#xff0c;分析源代码&#xff1a; <?php$file"graff…

如何制作EDM电子邮件营销模板

敲黑板&#xff01;宝子们&#xff0c;关于如何制作EDM邮件营销模板的重点介绍来啦~EDM邮件营销模板是现代社会中非常重要的一种电子邮件营销方式。通过精美的EDM邮件营销模板&#xff0c;可以吸引更多的用户注意和关注&#xff0c;进而提高销售量和用户体验。那么&#xff0c;…

以赛兴产 曙光支持首届全国先进计算技术创新大赛

7月11日&#xff0c;首届全国先进计算技术创新大赛启动会在四川达州成功召开。中科曙光作为大赛支持单位应邀出席&#xff0c;并就以赛兴产、加速算力走向普适普惠的深耕实践做专题分享。 本次大赛由中国信息通信研究院、四川省经济和信息化厅、达州市人民政府共同主办&#xf…

【优选算法题练习】day5

文章目录 一、904. 水果成篮1.题目简介2.解题思路3.代码4.运行结果 二、438. 找到字符串中所有字母异位词1.题目简介2.解题思路3.代码4.运行结果 三、30. 串联所有单词的子串1.题目简介2.解题思路3.代码4.运行结果 总结 一、904. 水果成篮 1.题目简介 904. 水果成篮 你正在探…

夏日酷暑高温,设备陆续罢工,为什么这款DTU却能久经“烤”验

炎炎夏日&#xff0c;终于迎来周末的东东&#xff0c;想要出门却发现所在地区不断弹出高温预警&#xff0c;刚买来的雪糕因为在桌子上放了1分钟&#xff0c;再打开包装时才发现其已经开始消融&#xff0c;那小雪人精致的面容也如同被太阳炙烤般扭曲变形&#xff0c;并时不时滴下…

CUnit在ARM平台上的离线搭建(让CUnit编译安装成功之后的可执行文件.so变成ARM下的—ARM aarch64)(实用篇)

前言&#xff1a;1 CUint-2.1-3.tar.bz2压缩安装包下载并解压2 进入CUint-2.1-3目录并且通过指令./bootstrap*产生configure *执行文件3 执行./configure*命令4 make编译5 make install 安装 前言&#xff1a; 在X86架构上的Linux操作系统上面进行cmake编译&#xff08;Cyclon…

为你解密免费音频格式转换器软件有哪些

音频格式转换技术是一种将音频文件从一种格式转换为另一种格式的技术。这项技术非常有用&#xff0c;可以帮助我们在不同设备和平台上播放和共享音频文件。现在市场上有许多免费的音频格式转换器软件可供选择&#xff0c;它们提供了方便、快捷的方式来进行音频格式转换。如果你…

MFC 将工具栏的两项中加入空白按钮

先视为普通按钮赋ID ImageList中Add的图为资源视图新建的CBitmap 是个空图 SetButtonText对应的按钮文本也为空格 然后m_toolbar.GetToolBarCtrl().EnableButton(ID_BUTTONS, FALSE);将对应的按钮禁用即可 ID_BUTTONS是第一个按钮的ID值 UINT nArray[21]; for (int i 0; i &l…

burpSuitPro破解安装教程

1、在解压后&#xff0c;如第一次使用BP请先运行 激活脚本 2、启动激活程序后点击 Run &#xff0c;运行Burp 然后将 License 里面的值复制到 Burp的 key 输入框里&#xff0c;点击 Next &#xff1a; 3、接下来我们要选择使用手动激活 点击 Manual activation 4、将如下输入…

Centos和redhat桥接模式下固定第二个ip地址为可查

这里我们以centos为例子&#xff0c;redhat与其同理 第一步&#xff1a;进入到镜像network-scripts/目录下 cd /etc/sysconfig/network-scripts 第二步&#xff1a; 输入ls查看自己启用的网卡名字并进行编辑&#xff0c;一般centos默认使用的网卡是idcfg-ens33 第三步&…

simulink 实现51单片机流水灯 及代码形式优化

目录 流水灯 代码形式 流水灯 需求&#xff1a;先左移 再右移 自己的 代码形式 2021a版本

pd虚拟机 Parallels Desktop ,让你能够在Mac电脑上同时运行Windows和macOS,简直太棒了!

最近我发现了一款软件——Parallels Desktop&#xff0c;它让我能够在Mac电脑上同时运行Windows和macOS&#xff0c;简直太棒了&#xff01;我想向大家推荐这款软件&#xff0c;因为它为我的工作和生活带来了巨大的便利和乐趣。 永久访问 https://www.hereitis.cn/soft/Paralle…

Linux开发工具【git】

Linux开发工具【git】 git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。也是林纳斯托瓦兹(Linus Torvalds)为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件&#xff0c;git 的诞生&#xff0c;让我们可以对代…

【Java】一只小菜坤的编程题之旅【2】

文章目录 1丶丑数2、各位相加3丶搜索插入位置4丶第一个错误的版本 1丶丑数 因为丑数只能被2&#xff0c;3&#xff0c;5整除&#xff0c;所以让n依次去除2&#xff0c;3&#xff0c;5&#xff0c;如果最后是n为1&#xff0c;就说明是丑数。 class Solution {public boolean is…

MySQL表的导入导出

目录 导出数据 导出数据语法 导入数据 导入数据语法 有时需要将MySQL中的数据导出到外部存储文件中 MySQL中的数据可以被导出成 sql文本文件xml文件html文件 同样的 该类文件也可以导入到MySQL数据库中 导出数据 导出数据语法 select columnlist from table where co…

typescript环境搭建

安装vscode 安装tsc npm install -g typescript --registryhttps://registry.npm.taobao.org查看是否安装成功 tsc --version管理员身份启动powershell bash set-ExecutionPolicy RemoteSigned

部署 Zabbix 集中监控系统

zabbix 概述 Zabbix 是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源监控套件 服务端端口&#xff1a;10051 客户端端口&#xff1a;10050 Zabbix 主要功能 主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表图表绘制 Zab…