目录

方法一:直接写一个监听处理函数

方法二:监听数据后面加字符串形式方法名

方法三:使用 immediate(立即)和 deep 属性及 handler (处理者)方法


  • 方法一:直接写一个监听处理函数,每次监听到属性值(如cityName)变化,执行此函数
  • 方法二:监听数据后面加字符串形式方法名,方法名在 methods 中定义
  • 方法三:使用 immediate(立即)属性和 handler (处理者)方法,deep 深度监测。如果只需要监听对象中的一个属性值,使用字符串形式监听对象属性名
  • watch 特点

方法一:直接写一个监听处理函数

  • 每次监听到属性值(如cityName)改变时,执行此函数
<input type="text" v-model="cityName"/>
export default{data () {return {cityName: '上海'}  },watch: {cityName(newVal, oldVal){this.cityName = newVal}}
}

方法二:监听数据后面加字符串形式方法名

  • 方法名在 methods 中定义
export default{data () {return {cityName: '上海'}  },watch: {cityName: 'nameChange'},methods: {nameChange(newVal, oldVal){this.cityName = newVal}}
}

方法三:使用 immediate(立即)和 deep 属性及 handler (处理者)方法

  • watch 特点

    • 当值第一次绑定时不会执行监听函数
    • 只有值发生改变时才会执行监听函数
    • 如果需要第一次绑定时执行监听函数,使用 immediate 属性 boolean 类型
  • 使用方法
    • 监听属性后面写成对象形式,包含 handler 方法和 immediate 属性
    • immediate 属性表示 watch 首次绑定时,是否执行 handler 方法
    • immediate 为 true 表示 watch 声明的时候,立即执行 handler 方法
    • immediate 值为 false 则和一般 watch 用法一样,在数据发生变化时才执行 handler 方法
export default{data () {return {cityName: '上海'}  },watch: {cityName: {handler(newVal, oldVal){this.cityName = newVal},immediate: true}}
}

deep 深度监听

  • 当需要监听一个对象改变时,普通 watch 无法监听到对象内部属性变化
  • 只有 data 中的数据才能够监听到对象内部属性变化
  • watch 中使用 deep 属性,可以对对象中的属性进行深度监听
<input type="text" v-model="cityName.name"/>
export default{data () {return {cityName: {id: 1, name: '上海'}}  },watch: {cityName: {handler(newVal, oldVal){console.log('newVal', newVal)console.log('oldVal', oldVal)},immediate: true,deep: true,}}
}
  • 设置 deep: true 可以监听到 cityName.name 变化
  • 此时会给 cityName 所有属性都加上这个监听器
  • 当对象属性较多时,每个属性值变化都会执行 handler 方法
  • 如果只需要监听对象中的一个属性值,使用字符串形式监听对象属性名
export default{data () {return {cityName: {id: 1, name: '上海'}}  },watch: {'cityName.name': {handler(newVal, oldVal){console.log('newVal', newVal)console.log('oldVal', oldVal)},immediate: true,deep: true,}}
}
  • 数组(一维、多维)变化不需要通过深度监听
  • 对象数组中对象属性变化需要进行深度监听
  • watch 中不要使用箭头函数,因为箭头函数中的 this 是指向当前作用域

vue watch 使用方法相关推荐

  1. Vue 中定义方法页面上使用

    vue中定义方法的格式 为什么要这样定义 最近在学习前段,特别是HBuildX 我看里面很多方式都是这样使用,所以想强加练习 如何引用 当然我们的editArticle也可以直接放到js中,如下: 都 ...

  2. vue 2.0 filter html,vue.filter使用方法是什么

    vue.filter使用方法:对值进行筛选加工,代码为[ {{ msg }} v-bind]. vue.filter使用方法: 在Vue中filter过滤器是一个非常强大的功能. 个人觉得称它为加工车 ...

  3. 非vue子页面 调用vue父页面方法

    由于要使用之前项目使用的页面,需要从非vue iframe子页面调用vue项目 1.父页面 <iframe :src="value.urlPath" frameborder= ...

  4. vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用

    vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用 异步解决方案:async/await 多个await,同步拿到数据再处理 多个接口处理拿到数 ...

  5. vue学习笔记(四)- cmd无法识别vue命令解决方法

    vue学习笔记(四)- cmd无法识别vue命令解决方法 参考文章: (1)vue学习笔记(四)- cmd无法识别vue命令解决方法 (2)https://www.cnblogs.com/suRimn ...

  6. vue过滤器使用方法

    vue过滤器使用方法 过滤器分全局过滤器和局部过滤器.和自定义指令一样,过滤器对应的函数中的this是window(无论是全局的还是局部的),而不是当前vue的实例. <!DOCTYPE htm ...

  7. 使用Vue三种方法实现简单计算器

    使用Vue三种方法实现简单计算器 代码实现了一个简单的计算器,用户可以在输入框中输入两个数字,选择一个操作符,并点击"等于"按钮,Vue.js会根据用户的输入进行计算,并将结果显示 ...

  8. 高德地图货车路径规划JS API以及WEB API在VUE中使用方法

    做一个路径规划系统,使用到了高德地图的API以及VUE,而路径规划方面在高德地图中,货车的接口使用次数是极为有限的,研究了一段时间,所以使用的时候要谨慎一点次数. 本文记录一下高德地图的JS API和 ...

  9. VUE的creat方法异步执行

    遇见的问题是发现有个方法时灵时不灵 created() { //Vue的creat方法是异步的this.getUser();this.getApplyInfo(); },methods: {getUs ...

  10. vue cli 3 升级到 vue cli 4 方法步骤及升级点总结

    vue cli 3 升级到 vue cli 4 方法步骤及升级点总结 官方升级英文文档,中文文档相对滞后. 简介:vue cli 4 官方已经更新有一段时间了,现在是4.0.5 版本,看了官方文档大概 ...

最新文章

  1. 人脸识别种族偏见:黑黄错误率比白人高100倍 | 美官方机构横评189种算法
  2. k8s 命令 重启_快速入门Kubernetes(K8S)——资源清单
  3. 轴自定义图标_9种吸引人的图标样式,能给你的设计带来良好的用户体验
  4. ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)
  5. Linux 指令大全(3)
  6. 【机器学习】Andrew Ng——02单变量线性回归
  7. 机器视觉打光方案(NOMEX胶纸)
  8. 卷积法求解光斑质心(附源码,C++、opencv)
  9. 快速制作机房3D效果图教程
  10. 【产业互联网周报】罗永浩AR创业公司获美团领投;英特尔自动驾驶子公司Mobileye敲定IPO条款;星环科技登陆科创板...
  11. java 抽象属性 设计_设计模式之抽象文档模式
  12. error “download token not specified“
  13. php laravel model,如何使用 Laravel Eloquent Model
  14. python基础——while循环(九九乘法表,阶乘计算器,三角形图案打印输出)
  15. 树莓派连接到电脑显示图形界面
  16. Ethercat远程IO模块接线准则
  17. 没有学历的程序员上限很低吗?BATZ面试评分最高的我,因为学历止步大厂......
  18. 机器学习模型性能提升技巧:指数加权平均(EMA)
  19. Simulink转FMU模型到Modelica仿真平台调用
  20. 突破技术限制,实现Web端静默打印

热门文章

  1. Echarts 开发混搭图表实现步骤,并实现多图联动
  2. @ConditionalOnClass的使用探索 新日暮里格斗大会
  3. C和C++中argc和argv的含义以及用法
  4. 小游戏.简易版宝可梦.原创
  5. 【JZOJ A组】跑商
  6. CodeMIrror.js在线代码编辑器简单使用
  7. 【基础知识】IIC(I2C)协议
  8. 学习stm32f107vc芯片的开发板
  9. vue .env文件
  10. oracle导入报错39002,impdp导入报错39002