千家信息网

Vue基础中的侦听器是什么

发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,Vue基础中的侦听器是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。vue中什么是侦听器开发中我们在data返回的对象中定义了数据,
千家信息网最后更新 2025年11月20日Vue基础中的侦听器是什么

Vue基础中的侦听器是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

vue中什么是侦听器

  • 开发中我们在data返回的对象中定义了数据,这个数据可以通过插值语法等方式绑定到templat中。

  • 当数据变化的时候,template里绑定的数据会自动进行更新来显示最新的数据。但是这种变化是在template中自动侦听data的值来进行变换的

  • 在某些情况下,我们希望在代码逻辑中监听某个数据的变化,这个时候就需要用到侦听器watch了

官方定义:Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

一个对象,键是要侦听的响应式 property--包含了 data 或 computed property,而值是对应的回调函数。值也可以是方法名,或者包含额外选项的对象。组件实例将会在实例化时调用 $watch(),参阅 $watch,以了解更多关于 deep、immediate 和 flush 选项的信息

侦听器的用法

选项:watch

类型:{ [key: string]: string | Function | Object | Array}

侦听器watch的配置选项:

默认情况下,watch只是在侦听数据的引用变化,对于数据内部属性的变化是不会做出响应的:

这个时候我们可以使用一个选项deep进行更深层的侦听;另外一个属性,是希望一开始的就会立即执行一次:这个时候我们使用immediate选项;这个时候无论后面数据是否有变化,侦听的函数都会有限执行一次;

data的内容:

data() {    return {        info: {            name: 'cgj'        }    }}watch: {    info: {        handler(newValue, oldValue) {            console.log(newValue, oldValue)            }        deep: true,        immediate: true,    }}

另外一个是Vue3文档中没有提到的,但是Vue2文档中有提到的是侦听对象的属性:

'info.name': function(newValue, oldValue) {    console.log(newValue, oldValue)}

还有另外一种方式就是使用 $watch 的API:

具体$watch可以查看官方的API查看(用的方式比较少):实例方法 | Vue.js

const app = createApp({  data() {    return {      a: 1,      b: 2,      c: {        d: 4      },      e: 5,      f: 6    }  },  watch: {    // 侦听顶级 property    a(val, oldVal) {      console.log(`new: ${val}, old: ${oldVal}`)    },    // 字符串方法名    b: 'someMethod',    // 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深    c: {      handler(val, oldVal) {        console.log('c changed')      },      deep: true    },    // 侦听单个嵌套 property    'c.d': function (val, oldVal) {      // do something    },    // 该回调将会在侦听开始之后被立即调用    e: {      handler(val, oldVal) {        console.log('e changed')      },      immediate: true    },    // 你可以传入回调数组,它们会被逐一调用    f: [      'handle1',      function handle2(val, oldVal) {        console.log('handle2 triggered')      },      {        handler: function handle3(val, oldVal) {          console.log('handle3 triggered')        }        /* ... */      }    ]  },  methods: {    someMethod() {      console.log('b changed')    },    handle1() {      console.log('handle 1 triggered')    }  }})const vm = app.mount('#app')vm.a = 3 // => new: 3, old: 1

vue侦听器-watch

目标: 可以侦听data/computed属性值改变

语法:

watch: {    "被侦听的属性名" (newVal, oldVal){    }}

例子代码:

小结: 想要侦听一个属性变化, 可使用侦听属性watch

vue侦听器-深度侦听和立即执行

目标: 可以侦听data/computed属性值改变

语法:

watch: {    "被侦听的属性名" (newVal, oldVal){    }}

例子代码:

小结: immediate立即侦听, deep深度侦听, handler固定方法触发

看完上述内容,你们掌握Vue基础中的侦听器是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

数据 属性 变化 侦听器 对象 方法 变量 时候 语法 方式 目标 代码 内容 实例 更多 深度 基础 例子 函数 官方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机二级的计算机网络技术 数据库在指定位置插入信息 阔杰互联网科技 酒店软件开发哪家好 软件开发外包怎么做成本 数据网络技术诚信服务 数据库环境配置 王焱网络技术重构读后感 软件开发合作协议书模板 学习网络安全基本知识的书 erp系统服务器价格 网络技术和农业该怎样发展 改咋写网络安全的手抄报 互联网科技平台起名字 数据库的账号的安全 运营商网络安全稳定可靠 中国网络技术有限公司王东 数据中心服务器虚拟化 网络安全及舆情应对处理培训 acr38u软件开发包 电脑保存文件不需要数据库 学籍管理软件开发资金预算表 国家网络安全宣传周知识竞赛 滨江区软件开发平台 惠州公文机器人rpa软件开发 广州优万网络技术张茹娟 数据库与项目如何进行连接 获取股票数据建立实时更新数据库 关于网络安全的博文英语结尾 网络安全装置act是什么意思
0