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

watch监听不到数组对象的变化

watch监听不到数组对象的变化

  • 一、利用索引直接改变arr的值
  • 二、修改数组的长度arr.length
  • 三、添加和修改对象属性和值

Vue不能监听到数组和对象值的变化其实和双向绑定的原理有关。Vue双向绑定原理是利用js中的Object.defineproperty重定义对象的GET和SET方法,而同时这种方法存在着缺陷。就是只能监听到对象内已有的值。在监听对象中属性变化的方法中中,无疑是使用ES6的proxy更为优越。

**总结:
如果操作对象是数组,改变数组的值用Vue的set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用set方法, 改变数组的长度用数组的splice方法使数组变化变成可监听的。 如果操作对象是对象。 如果操作的属性是对象内已经有的值,使用set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用watch,加上关键字deep深度监听对象,
如果操作的属性是对象内没有的新属性。使用$set使对象变成可监听的!
**

一、利用索引直接改变arr的值

//普通监听
watch:{arr:function (newValue,oldValue) {console.log('arr改变了')},
}
// this.arr=[1,2,3,4]
this.arr[0]=100  //watch监听不到数组变化
this.$set(this.arr,0,1234) //能监听到数据

二、修改数组的长度arr.length

//普通监听
watch:{arr:function (newValue,oldValue) {console.log('arr改变了')},
}
// this.arr=[1,2,3,4]
this.arr.length=2   //watch监听不到数组变化
this.arr.splice(0,2)   //能监听到数据

三、添加和修改对象属性和值

//普通监听
watch:{obj:{handel:function (newValue,oldValue) {console.log('obj改变了')},deep:true
}
// obj:{   name:'wxs',
//          age:21   }
obj.name='xxx'   //watch监听不到数组变化要加上deep:true
this.$set(this.obj,'major','Vue')   //能监听到数据

链接: https://betheme.net/news/txtlist_i64894v.html?action=onClick
链接: https://blog.csdn.net/qq_38280242/article/details/102807862

http://www.lryc.cn/news/33156.html

相关文章:

  • 言语理解与表达之语句表达
  • 2023年全国最新食品安全管理员精选真题及答案14
  • 【MySQL】约束
  • C语言学习(三)
  • TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
  • k8s学习之路 | k8s 工作负载 ReplicaSet
  • python实现半色调技术图像转换
  • c++面试技巧-基础篇
  • 三八妇女节即将到来,跨境电商如何玩转节日营销?
  • 【Java学习笔记】10.条件语句 - if...else及switch case 语句
  • 解析STM32启动过程
  • 微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代
  • Mysql迁移Postgresql
  • 关于信息安全认证CISP、PTE对比分析
  • 游戏场景编辑器和骨骼动画相关软件
  • vue3常用的API
  • Qt中使用
  • controller-runtime搭建operator开发环境
  • FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持
  • Django 之 CharField 和 TextField
  • recyclerview 使用的坑
  • DBeaver连接mysql、oracle数据库
  • Kivy GridLayout 布局
  • Spark高手之路2—Spark安装配置
  • Java中对象的比较
  • Python编程训练题2
  • Shifu基础功能:设备管理
  • 交互:可以执行命令行的框架才是好框架
  • eunomia-bpf 和 wasm-bpf 项目的 3 月进展
  • Spring框架核心功能手写实现