vue watch监听

在 Vue.js 中,watch 是一个对象,用于观察和响应 Vue 实例上的数据变化。当被监视的属性发生变化时,watch 里的回调函数将被调用。

(vue2)官方文档:计算属性和侦听器 --- Vue.js (vuejs.org)

下面是一个简单的 watch 示例:

javascript 复制代码
<template>  
  <div>  
    <input v-model="message" placeholder="输入一些文字...">  
    <p>{{ message }}</p>  
  </div>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      message: ''  
    };  
  },  
  watch: {  
    // 监听 message 属性的变化  
    message(newVal, oldVal) {  
      console.log(`新的 message 值是: ${newVal}`);  
      console.log(`旧的 message 值是: ${oldVal}`);  
    }  
  }  
};  
</script>

在这个例子中,当 message 的值发生变化时,watch 里的回调函数将被调用,并打印出新旧的值。

你还可以使用深度监听对象或数组的变化,只需在 watch 选项中将属性设置为一个对象,并设置 deep 属性为 true

javascript 复制代码
<template>  
  <div>  
    <input v-model="userInfo.name" placeholder="输入名字...">  
    <p>{{ userInfo.name }}</p>  
  </div>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      userInfo: {  
        name: ''  
      }  
    };  
  },  
  watch: {  
    userInfo: {  
      handler(newVal, oldVal) {  
        console.log(`新的 userInfo 值是:`, newVal);  
        console.log(`旧的 userInfo 值是:`, oldVal);  
      },  
      deep: true // 深度监听  
    }  
  }  
};  
</script>

在这个例子中,当 userInfo 对象的 name 属性发生变化时,watch 里的回调函数将被调用,并打印出新旧的值。

此外,还可以使用 immediate 属性,使得 watch 在初始化时立即执行一次回调函数:

javascript 复制代码
watch: {  
  message: {  
    handler(newVal, oldVal) {  
      console.log(`新的 message 值是: ${newVal}`);  
      console.log(`旧的 message 值是: ${oldVal}`);  
    },  
    immediate: true // 初始化时立即执行  
  }  
}

在这个例子中,watch 在初始化时将立即执行一次回调函数,打印出 message 的初始值。

更多请看其他大佬文章:

Vue.js 监听属性 | 菜鸟教程 (runoob.com)

Vue进阶(三十五):watch 监听函数详解 - 掘金 (juejin.cn)

Vue之watch监听的原理_vue watch原理-CSDN博客

vue的watch监听_vue watch监听-CSDN博客

vue-watch监听功能(侦听器)详解&使用_vue watch监听-CSDN博客

相关推荐
闲猫13 分钟前
Spring AI 对接Deepseek ChatModel 聊天对话
java·前端·spring
paopaokaka_luck1 小时前
英语单词学习系统的设计与实现(基于艾宾浩斯遗忘曲线的智能复习机制、语音朗读、多题型测试与错题自动收录、Echarts图形化分析)
vue.js·spring boot·后端·echarts
自信的未来2 小时前
JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
java·前端·json
SRET2 小时前
Mineradio 沙盒隔离安装完全指南 | 一键安全运行 Electron 应用!!!
javascript·经验分享·安全·electron·aigc·音视频·ai编程
全栈前端老曹2 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
zhangxingchao3 小时前
AI大模型核心八:从 Agent Skill、长文档 RAG 到知识库更新与训练策略
前端·人工智能·后端
zhangxingchao4 小时前
AI大模型核心七:从 Workflow、RAG、记忆治理到幂等性
前端·人工智能·后端
gyx_这个杀手不太冷静4 小时前
Agent开发进阶指南(第 1 章):AI Agent 到底是什么?
前端·agent·ai编程
小小小小宇5 小时前
模型相关知识
前端
小小小小宇5 小时前
模型相关知识二
前端