watch(监听的对象或值,
回调函数(参数新值,旧值),
设置项是对象={
immediate: true//立即监听--进入就会实行一次
deep:true //深度监听
})
起首引入
- import { ref, watch } from 'vue';
复制代码 设置相应式数据
设置点击变乱,点击触发修改num
- const btn = () => {
- // 改变简单数据
- num.value++
- }
复制代码 监听简朴数据范例----- immediate: true//立即监听--进入就会实行一次
- // 简单数据类型监听
- watch(num, (newVal, oldVal) => {
- console.log(newVal, oldVal);
- }, {
- immediate: true//立即监听--进入就会执行一次
- })
复制代码 ---------------------------------------------------------------------------------------------------------------------------------
设置复杂数据范例
- const obj = ref({ age: 18 })
复制代码 点击变乱添加修改复杂数据
- const btn = () => {
- // 改变简单数据
- num.value++
- // 改变复杂数据
- obj.value.age++
- }
复制代码 设置监听--监听整个对象需要开启深度监听----- deep: true,//开启深度监听
- // 监听整个对象
- watch(obj, (newVal, oldVal) => {
- console.log(oldVal);//无效--复杂数据类型监听没有旧值参数
- console.log(newVal, 'fz');
- }, {
- deep: true,//开启深度监听
- immediate: true//立即监听
- })
复制代码
=========================================================================
监听复杂数据范例的某一个属性值
设置复杂数据
- const obj2 = ref({ num: 0, max: 99, min: 0 })
复制代码 点击变乱,修改对象内的属性值
- const btn = () => {
- // 改变简单数据
- num.value++
- // 改变复杂数据
- obj.value.age++
- //----
- obj2.value.num++
- }
复制代码 监听obj对象内的num属性值的变化-----不需要开启深度监听,但是想页面加载就实行需要设置immediate,可以监听到新值和旧值
- // 监听复杂对象的某一个值,不需要开启深度监听
- watch(() => obj2.value.num, (newVal, oldVal) => {
- console.log(newVal, oldVal, 'hs');
- })
复制代码
*************************************************************************************************************
相应式数据
- const num = ref(1)
- // ***************
- // 复杂数据类型
- const obj = ref({ age: 18 })
复制代码 同时监听多个值---不要开启深度监听可以,监听obj内数据的变化
- // 监听多个值(简单数据和复杂数据)--监听参数是数组形式
- watch([num, obj], (newVal, oldVal) => {
- console.log(newVal, oldVal, 'zzz');
- })
复制代码
来源:https://blog.csdn.net/qq_20623665/article/details/129772867
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |