watch监听vue2与vue3的写法

watch的属性值

TypeScript 复制代码
handler:回调函数, 即监听到变化时应该执行的函数,可以是单独的函数或带有 immediate 和 deep 属性的对象
    watch: {
      someProperty: function(newVal, oldVal) {
        // 处理逻辑
      }
    }


deep: 其值是true或false, 当属性值是对象或数组时,深度观察会监控对象内部所有层级的变化。
    watch: {
      someObject: {
        handler(newVal, oldVal) {
              // 处理逻辑
        },
        deep: true
      }
    }


immediate: 值是true或false,首次绑定时立即执行回调函数
    watch: {
      someProperty: {
        handler(newVal, oldVal) {
          // 处理逻辑
        },
        immediate: true
      }
    }

vue2写法:

TypeScript 复制代码
//基本用法
  watch:{
    avatar(navl,oval){
        console.log(navl,'navl');
        console.log(oval,'oval');
    }
  },
//深度监听 
watch: {
    user: {
      handler(nval,oval) {
         console.log(nval,oval);
      },
      deep: true,
    }
  },
//立即执行
watch: {
    user: {
      handler(nval,oval) {
         console.log(nval,oval);
      },
      immediate: true
    }
  },
//观察数组中特定项的变化
  watch: {
    'user[0]': function(newVal, oldVal) {
      console.log('user[0] changed from', oldVal, 'to', newVal);
    }
//监听多个数据源
  watch: {
    property1(newVal, oldVal) {
      console.log('property1 changed from', oldVal, 'to', newVal);
    },
    property2(newVal, oldVal) {
      console.log('property2 changed from', oldVal, 'to', newVal);
    }
  }

vue3写法:

TypeScript 复制代码
import { watch } from 'vue';
//基本用法
watch(avatar, (newVal, oldVal) => {
   console.log('avatarchanged from', oldVal, 'to', newVal);
});

//深度管察
watch(
   () => user,
   (nval,oval) => {
      console.log(val, oval)
   },
    { deep:true },
)

//立即执行
watch(
   () => user,
   (nval,oval) => {
      console.log(val, oval)
   },
    { immediate: true },
)

//使用回调函数对象
watch(
   someProperty,
    {
       handler(newVal, oldVal) {
        console.log('someProperty changed from', oldVal, 'to', newVal);
     },
       immediate: true,
       deep: true
      }
    );
相关推荐
2501_92406411几秒前
2025年主流Web自动化测试工具功能与适用场景对比
前端·测试工具·自动化
可触的未来,发芽的智生8 分钟前
一万个为什么:频率和相位
javascript·人工智能·python·程序人生·自然语言处理
IT_陈寒14 分钟前
Vite 5 实战:7个鲜为人知的配置技巧让构建速度提升200%
前端·人工智能·后端
gg1593572846015 分钟前
JavaScript 核心基础
前端·javascript·vue.js
Stanford_110629 分钟前
【2026新年启程】学习之路,探索之路,技术之路,成长之路……都与你同行!!!
前端·c++·学习·微信小程序·排序算法·微信开放平台
打小就很皮...37 分钟前
网页包装为桌面应用(Nativefier版)
前端·桌面应用·nativefier
拾荒李1 小时前
性能优化-手搓定高虚拟列表实现
javascript·性能优化
自由生长20241 小时前
为什么我们需要流式系统?
前端
北辰alk1 小时前
从零设计一个Vue路由系统:揭秘SPA导航的核心原理
前端·vue.js
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue个人博客系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计