第三十九篇:Vue3 watch(ref和reactive的监视)
2024-09-08 03:44:40
好家伙,
1.vue2中的watch是调用配置项,(只能写一个)
vue3中的watch是一个函数(可以写很多个)
2.watch一些用法:
这里是定义的数据
set up(){
let sum =ref(0)
let msg = ref('你好啊')
let person = reactive({
name:'张三'
job:{
j1{
salary:20
}
}
})
}
return{
..........
}
用法一:监视ref所定义的一个响应式数据
watch(sum,(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)},
{immediate:true})
用法二:监视ref所定义的多个对象
watch([sum,msg],(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)},
{immediate:true})
用法三:监视reactive监视reative所定义的一个响应式数据的全部属性
注意:1.此处无法获得正确的oldValue,对象拿不到oldVuale
2.默认开启深度监视?关不掉,强制开启了深度监视(deep配置无效)
watch(person,(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)},
{deep:false})
用法四:监视reactive监视reative所定义的一个响应式数据的某个属性 (写成函数)
watch(()=>person.name,(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)},)
用法五:监视reactive监视reative所定义的一个响应式数据的某些属性
watch([()=>person.name,()=>person.age],(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)})
特殊情况:
watch(()=>person.name,(newValue,oldvalue)=>
{console.log('sum变了',newValue,oldvalue)},
{deep:true})
此处监视得失reactive定义的对象中的某个属性的对象 .
这里是普通对象了,deep配置又能用了
3.小结:1.监视reactive定义的响应式数据时:oldValue无法正确获取,强制开启了胜读监视(deep配置失败)
2.监视reactive定义的响应式数据中某个属性时:deep配置有效
最新文章
- opencv的问题
- 洛谷 P1967 货车运输 Label: 倍增LCA &;&; 最小瓶颈路
- SqlServer_事务
- javascript时间、随机数
- jsp <;%! %>; 与 <;% %>; 区别
- OpenGL ES 2.0 符点精度
- Windows 7中怎样找到真正的Administrator账户
- [SinGuLaRiTy] 组合数学
- C++静态库与动态库(转)
- VMware中的桥接模式、NAT(网络地址转换模式)、Host-only(主机模式):转自:http://blog.chinaunix.net/uid-11798538-id-3061551.html
- 【Teradata】变更viewpoint web登录地址
- Codeforces 1076D Edge Deletion 【最短路+贪心】
- android的事件分发传递机制
- OpenCV入门笔记(七) 文字区域的提取
- leetcode 443. String Compression
- 利用 devcon.exe实现自动安装驱动(转)
- 实体格式化转xml
- 【图算法】Dijkstra算法及变形
- 记录一下获取浏览器可视区域的大小的js
- bing词典vs有道词典对比测试报告——功能篇之细节与用户体验