千家信息网

Vue基础中的侦听器是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Vue基础中的侦听器是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。vue中什么是侦听器开发中我们在data返回的对象中定义了数据,
千家信息网最后更新 2026年11月02日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安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 河南云网互联网络科技有限公司 科技企业和互联网企业 重庆互联网络科技 百单互联网科技有限公司 有木互联网科技 四川狮子座互联网科技 中国互联网金融科技基金 盛创互联网科技有限公司 哈尔滨秒房互联网科技有限公司 互联网科技热点资讯 宁夏众和广鑫互联网科技有限公司 玉溪互联网科技怎么选 广州市恰铎互联网科技有限公司 青海科技产业互联网发展 996高科技互联网公司 为客找房互联网科技公司怎么样 伍佰万互联网科技怎么赚钱 亚光科技低轨卫星互联网 科技发展第三阶段互联网时代 互联网新科技 互联网科技公司简介 中国 科技 互联网 奇酷互联网科技 宁波青枫互联网科技有限公司 互联网5g黑科技有哪些 西安小鹰速贷互联网科技有限公司 国大互联网教育科技有限公司薪资 好易买互联网科技 陕西彩京云互联网科技有限公司
0