type
status
date
tags
category
icon
password
获取响应式数据
API | 传入 | 返回 | 备注 |
reactive | plain-object | 对象代理 | 深度代理对象中的所有成员 |
readonly | plain-object or proxy | 对象代理 | 只能读取代理对象中的成员,不可修改 |
ref | any | { value: ... } | 对value的访问是响应式的
如果给value的值是一个对象,
则会通过 reactive 函数进行代理
如果已经是代理,则直接使用代理 |
computed | function | { value: ... } | 当读取value值时,
会根据情况决定是否要运行函数 |
应用:
- 如果想要让一个对象变为响应式数据,可以使用
reactive
或ref
- 如果想要让一个对象的所有属性只读,使用
readonly
- 如果想要让一个非对象数据变为响应式数据,使用
ref
- 如果想要根据已知的响应式数据得到一个新的响应式数据,使用
computed
监听数据变化
watchEffect
watch
注意:无论是
watchEffect
还是watch
,当依赖项变化时,回调函数的运行都是异步的(微队列)应用:除非遇到下面的场景,否则均建议选择
watchEffect
- 不希望回调函数一开始就执行
- 数据改变时,需要参考旧值
- 需要监控一些回调函数中不会用到的数据
判断
API | 含义 |
isProxy | 判断某个数据是否是由 reactive 或readonly |
isReactive | 判断某个数据是否是通过 reactive 创建的
详细:https://v3.vuejs.org/api/basic-reactivity.html#isreactive |
isReadonly | 判断某个数据是否是通过 readonly 创建的 |
isRef | 判断某个数据是否是一个 ref 对象 |
转换
unref
等同于:
isRef(val) ? val.value : val
应用:
toRef
得到一个响应式对象某个属性的ref格式
toRefs
把一个响应式对象的所有属性转换为ref格式,然后包装到一个
plain-object
中返回应用:
降低心智负担
所有的
composition function
均以ref
的结果返回,以保证setup
函数的返回结果中不包含reactive
或readonly
直接产生的数据- Author:杨敢敢
- URL:http://preview.tangly1024.com/article/1adac6ee-e22b-8184-9c06-ef38be44f953
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!