news 2026/4/4 6:50:54

Vue customRef

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue customRef

customRef是 Vue 3 中的一个高级响应式 API,用于创建自定义的响应式引用(ref),允许开发者对依赖追踪和更新触发过程进行细粒度控制。它通过一个工厂函数接收tracktrigger两个函数,返回一个包含getset方法的对象,从而实现灵活的响应式逻辑。‌

基本用法

customRef的核心是自定义依赖管理:

  • 工厂函数‌:接收track(用于收集依赖)和trigger(用于触发更新)作为参数。
  • 返回对象‌:必须包含get方法(读取值时调用track收集依赖)和set方法(设置值时调用trigger触发更新)。‌

基础示例:

const customRefValue = customRef((track, trigger) => { let value = 0; return { get: () => { track(); // 收集依赖 return value; }, set: (newValue) => { value = newValue; trigger(); // 触发更新 } }; });

主要应用场景

customRef适用于需要精细控制响应式行为的场景:

  • 防抖/节流‌:在设置值后延迟触发更新,避免频繁响应。例如,实现输入防抖:
    function useDebouncedRef(value, delay) { let timer; return customRef((track, trigger) => ({ get: () => { track(); return value; }, set: (newValue) => { clearTimeout(timer); timer = setTimeout(() => { value = newValue; trigger(); }, delay); } })); }
  • 与外部状态集成‌:如本地存储(localStorage)同步:
    function useLocalStorage(key, initialValue) { return customRef((track, trigger) => ({ get: () => { track(); return localStorage.getItem(key) ?? initialValue; }, set: (value) => { localStorage.setItem(key, value); trigger(); } })); }
  • 性能优化‌:通过浅层响应式避免不必要的深层转换,适用于大型数据结构。‌

ref的区别

  • ref提供基础响应式包装,自动处理深层转换,适合常规场景。
  • customRef允许手动控制依赖追踪和更新时机,更灵活但需谨慎使用,例如避免在 getter 中返回新对象导致不必要的重新渲染。‌

注意事项

  • 依赖管理‌:确保在get中调用track,在set中调用trigger,否则响应式失效。
  • 副作用处理‌:结合effectScope等 API 管理副作用生命周期,避免内存泄漏。‌

通过customRef,开发者可以构建高度定制化的响应式逻辑,提升应用性能或实现复杂交互。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 1:03:56

基于STM32智能图像识别自主学习录入物体场景设计

摘 要 本文介绍了一种基于 STM32F103C8T6 单片机的系统设计。该系统主要由单片机核心板、TFT 液晶显示电路、可选的无线通信模块(无线蓝牙 / 无线 WIFI / 无线视频监控模块)、蜂鸣器声光报警、摄像头模块、舵机模块、按键电路以及电源电路组成。通过各模…

作者头像 李华
网站建设 2026/4/4 4:46:07

小功率数控直流稳压电源设计

摘 要 在现代电子设备的研发、测试和维护过程中,稳定、精确的直流电源是不可或缺的。传统的直流电源往往存在调节不便、精度不高、缺乏保护机制等问题,难以满足现代电子设备的多样化需求。因此,设计一款小功率数控直流稳压电源具有重要意义。…

作者头像 李华
网站建设 2026/4/2 21:32:36

基于Stm32的人脸识别门锁控制系统

2 系统总体设计 2.1 系统功能设计 人脸识别门锁控制系统主要实现录入人脸图像,识别人脸图像,并且进行开门,关门的实现,通过摄像头模块进行拍摄人脸图像,并且通过按键电路模块控制相关录入图像,关闭图像&…

作者头像 李华
网站建设 2026/4/2 6:20:55

4 STM32学习板入门视频教程 STM32芯片功能介绍

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~👇热门内容👇 python使用案例与应用_安城安的博客-CSDN博客 软硬件教学_安城安的博客-CSDN博客 Orbslam3&Vinsfusion_安城安的博客-CSDN博客 网络安全_安城安的博客-C…

作者头像 李华
网站建设 2026/4/3 9:02:20

跨域 AD 混合环境权限失控?ADManager Plus 风险分析功能详解

在AD、Azure AD与Microsoft 365共存的混合IT环境中,身份滥用、权限泄露、配置漏洞等安全风险愈发突出,合规治理压力也与日俱增。卓豪 ADManager Plus 作为一站式 IT 审计与身份管理解决方案,其风险分析功能专AD、Azure AD 及 Microsoft 365 混…

作者头像 李华
网站建设 2026/3/27 10:20:00

从词汇到向量:Word2Vec如何捕捉语义关系

1.1 一个关键的洞察 在讲 Word2Vec 之前,我们先思考一个问题:人类是怎么理解一个词的含义的? 假设你第一次看到「Transformer」这个词,你会怎么理解它? 句子1:Transformer 是一种深度学习模型句子2&#xf…

作者头像 李华