当前位置:首页 > 科技  > 软件

Vue3 新玩法!我能操控计算属性 Computed!

来源: 责编: 时间:2024-05-27 08:52:59 260观看
导读背景最近在做一个需求的时候,用到了一个 Vue3 内置的 API,发现真的非常实用,分享给大家。需求是这样的,我有一个变量 sum,是通过computed去计算的,且 sum 依赖的变量有的是响应式的,有的不是响应式的,所以会造成以下的后果,当

背景

最近在做一个需求的时候,用到了一个 Vue3 内置的 API,发现真的非常实用,分享给大家。qTl28资讯网——每日最新资讯28at.com

需求是这样的,我有一个变量 sum,是通过computed去计算的,且 sum 依赖的变量有的是响应式的,有的不是响应式的,所以会造成以下的后果,当非响应式变量改变时,并不会触发sum 的响应式更新,只有响应式变量改变时才会触发sum的响应式更新。qTl28资讯网——每日最新资讯28at.com

图片图片qTl28资讯网——每日最新资讯28at.com

所以我需要用到一个 Vue3 的内置 API,它就是customRef。qTl28资讯网——每日最新资讯28at.com

customRef

创建一个自定义的 ref,显式声明对其依赖追踪和更新触发的控制方式。qTl28资讯网——每日最新资讯28at.com

类型

图片图片qTl28资讯网——每日最新资讯28at.com

详细信息

customRef() 预期接收一个工厂函数作为参数,这个工厂函数接受 track 和 trigger 两个函数作为参数,并返回一个带有 get 和 set 方法的对象。qTl28资讯网——每日最新资讯28at.com

一般来说,track() 应该在 get() 方法中调用,而 trigger() 应该在 set() 中调用。然而事实上,你对何时调用、是否应该调用他们有完全的控制权。qTl28资讯网——每日最新资讯28at.com

实践小案例:防抖 Ref

创建一个防抖 ref,即只在最近一次 set 调用后的一段固定间隔后再调用:qTl28资讯网——每日最新资讯28at.com

图片图片qTl28资讯网——每日最新资讯28at.com

在组件中使用:qTl28资讯网——每日最新资讯28at.com

图片图片qTl28资讯网——每日最新资讯28at.com

可控的 computed

图片图片qTl28资讯网——每日最新资讯28at.com

再回到一开始的话题,我遇到的问题是:当非响应式变量改变时,并不会触发sum 的响应式更新,只有响应式变量改变时才会触发sum的响应式更新。qTl28资讯网——每日最新资讯28at.com

所以我们需要当非响应式变量count1、count2改变的时候,去手动触发 computed 的计算,这样才能更新 sum,但是 computed 返回的不是一个函数啊,我们要怎么去手动触发计算呢?qTl28资讯网——每日最新资讯28at.com

所以这时候就需要一个可控的 computed,它拥有以下功能:qTl28资讯网——每日最新资讯28at.com

1、能根据响应式变量去自动触发计算更新qTl28资讯网——每日最新资讯28at.com

2、提供一个方法让用户手动去调用触发更新qTl28资讯网——每日最新资讯28at.com

期望使用方式是这样的:qTl28资讯网——每日最新资讯28at.com

图片图片qTl28资讯网——每日最新资讯28at.com

具体的代码实现如下:qTl28资讯网——每日最新资讯28at.com

图片 图片 qTl28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-90851-0.htmlVue3 新玩法!我能操控计算属性 Computed!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 智启未来、共创锡望 —— 巴可 (Barco) 无锡开业典礼盛大举行

下一篇: 再探泛型 API,感受 Python 对象的设计哲学

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 最“俊美”淘宝卖家,靠直播和短视频圈粉,上架秒光,年销3000万

    来源 | 电商在线文|易琬玉编辑|斯问受访店铺:Ringdoll戒之人形图源:微博@御座的黄山、“Ringdoll戒之人形”淘宝店铺有关外貌的评价,黄山已经听累了。生于1985年的他,哪
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会隆重举行

    9月18日,2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会在青岛国际新闻中心隆重举行。发布会上青岛市政府领导联袂出席,对本次双展会情
Top