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值时, 会根据情况决定是否要运行函数
应用:
  • 如果想要让一个对象变为响应式数据,可以使用reactiveref
  • 如果想要让一个对象的所有属性只读,使用readonly
  • 如果想要让一个非对象数据变为响应式数据,使用ref
  • 如果想要根据已知的响应式数据得到一个新的响应式数据,使用computed

监听数据变化

watchEffect
watch
注意:无论是watchEffect还是watch,当依赖项变化时,回调函数的运行都是异步的(微队列)
应用:除非遇到下面的场景,否则均建议选择watchEffect
  • 不希望回调函数一开始就执行
  • 数据改变时,需要参考旧值
  • 需要监控一些回调函数中不会用到的数据

判断

API
含义
isProxy
判断某个数据是否是由reactivereadonly
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函数的返回结果中不包含reactivereadonly直接产生的数据
vite的原理事件循环
Loading...
杨敢敢
杨敢敢
一个普通的干饭人🍚
Latest posts
ReactivityApi
2025-3-8
vite的原理
2025-3-8
ES Module
2025-3-8
网络
2025-3-8
CommonJS
2025-3-8
Promise
2025-3-8
Announcement
🤖 本博客运行状态播报
「前端代码持续乱炖中,不定期揭盖撒点新调料~」
✨ 功能更新:
  • 本周新增《摸鱼学导论》彩蛋按钮(开发者已掉3根头发)
  • 页面动画效果:假装加载很快的样子✨
🚨 高危预警:
评论区开放「野生bug收容所」👉 来帮我抓虫/投喂技术冷笑话/用表情包远程撸猫
(小声:下次更新可能是明天,也可能是下辈子👻)