learn-vue ref
Ref全家桶
相当于vue2的data return中定义的数据,是数据的响应式。
ref
1 | import {ref, Ref} from "vue"; |
改为ref后,在<script>中需要通过.value来进行取值或赋值(在<template>中不需要)
isRef
判断是否为ref对象
shallowRef
浅层响应,只跟随.value
响应,对于.value.属性
的更改不响应
ref与shallowRef的使用不能混在一起,否则会导致shallowRef的浅层响应受到影响而更新。
这是因为二者的更新在底层都是调用的triggerRef,shallow在创建是被收集了依赖,而triggerRef调用时会更新所有依赖的修改,因此,无论隐式或显示地调用了triggerRef,所有值已更改的shallowRef都会在页面中更新
triggerRef
强制更新,将一个shallowRef的对象传入,也会使其对已修改的值进行更新。
customRef
自定义ref,可以做防抖
1 | const myRef = <T=any>(value:T) => { |
延迟500ms更新,每次进入set会清除上一次的计时任务,频繁多次点击不会多次执行,只会执行最后一次
这里写的是浅层响应
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 李文豪の博客!