当前位置: 首页 > article >正文

vue监听对象属性值变化

一、官方文档

二、实现方法

方法一、直接根据watch来监听

export default {
    data() {
        return {
            object: {
                username: '',
                password: ''
            }
        }
    },
    watch: {
        'object.username'(newVal, oldVal) {
            console.log(newVal, oldVal)
        }
    }
}

方法二:利用watchcomputed来实现监听

利用computed定义一个新属性,新属性使用object里面的某个属性值,再使用watch来监听这个新属性值。

export default {
    data() {
        return {
            object: {
                username: '',
                password: ''
            }
        }
    },
    computed: {
        username() {
            return this.object.username
        }
    },
    watch: {
        username(newVal, oldVal) {
            console.log(newVal, oldVal)
        }
    }
}

方法三:利用对象属性的deep = true来实现

只要对象属性里面的任何一个属性值发生改变,不论嵌套的多深,都会触发监听里面的handler方法。

注意:如果是一个数组对象ArrayObject,也要加deep,如果该属性是一个数组Array,则不需要加deep

export default {
    data() {
        return {
            object: {
                username: '',
                password: ''
            }array: ['1', '2'],
            arrayObject: [
                {
                    id: 1,
                    name: '1'
                }{
                    id: 2,
                    name: '2'
                }
            ]
        }
    },
    watch: {
        object: {
            deep: true,
            handler(newVal, oldVal) {
                //newVal和oldVal会包含formData里面的每一个属性值
                console.log(newVal, oldVal)
            }
        },
        array: {
            handler(newVal, oldVal) {
                //newVal和oldVal会包含formData里面的每一个属性值
                console.log(newVal, oldVal)
            }
        },
        arrayObject: {
            deep: true,
            handler(newVal, oldVal) {
                //newVal和oldVal会包含formData里面的每一个属性值
                console.log(newVal, oldVal)
            }
        }
    }
}

http://www.kler.cn/a/131852.html

相关文章:

  • 某头部通信企业:SDLC+模糊测试,保障数实融合安全发展
  • Scala---样例类+隐式转换
  • 云计算(一):弹性计算概述
  • Apriori算法
  • 报错资源不足,k8s使用containerd运行容器修改挂载点根目录换成/home
  • mongodb 6/7的 windows安装问题
  • 电子学会C/C++编程等级考试2021年09月(一级)真题解析
  • 我所理解的 UI Toolkit 启蒙阶段(一)
  • 修改docker默认数据目录
  • LrC ACR :优化的 AI 天空蒙版
  • 实现MQTT协议的服务器端和客户端的双向交互
  • vue 学习 -- day36(分析工程结构)
  • 【鸿蒙应用ArkTS开发系列】- 云开发入门简介
  • C/C++疫情集中隔离 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 《少儿编程启蒙指南》
  • TCP与UDP协议
  • PDF控件Spire.PDF for .NET【转换】演示:将PDF 转换为 HTML
  • react+video.js h5自定义视频暂停图标
  • Maven:通过相对路径向jar中添加依赖项
  • 我的 2023 秋招总结,拿到了大厂offer