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

uni-app 在已有的数据对象中动态添加更多的数据对象

原数据对象

flowData: {list: [], // 数据值column: 2, // 瀑布列数columnSpace: 2 // 瀑布列宽间距
}

动态添加后的数据对象

flowData: {list: [], // 数据值column: 2, // 瀑布列数columnSpace: 2, // 瀑布列宽间距column_1: [],column_2: []
}

动态添加更多的数据对象的方法

created() {/* 初始化每一列的数据 */for (let i = 1; i <= this.flowData.column; i++) {this.$set(this.flowData, `column_${i}`, []);}
},

使用 this.$set 来动态添加一个名为 `column_${i}` 的属性,它被初始化为空数组或空对象或其他的值。可以根据需要重复此过程以添加更多的列属性

this.$set(target, key, value);
// target:要更改的数据源(可以是对象或者数组)
// key:要更改的具体数据
// value:重新赋的值

官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = 'hello,ningzaichun')

简单来说:当你给对象加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,这个时候就需要用到 this.$set() 这个方法

Vue.set() 与 this.$set() 的区别

Vue.set():将 set 函数绑定在 vue 构造函数中,设置实例创建之后添加的新的响应式属性,且触发视图更新,但是不允许添加根级响应式属性,只可以向嵌套对象添加响应式属性

this.$set():将 set 函数绑定在 vue 原型上,只能设置实例创建后存在的数据(数据已经在 data 中)

两者都是实现向实例对象中添加响应式属性,触发视图更新,两者原理和用法基本相同,都是使用 set 函数

Vue.set() 是将 set 函数绑定在 Vue 构造函数上,this.$set() 是将 set 函数绑定在 Vue 原型上

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

相关文章:

  • 【LeetCode】17. 电话号码的字母组合
  • 使用 Apache Kafka 进行发布-订阅通信中的微服务
  • valarray 包含对象成员的类(cpp14章)
  • 2023双11笔记本电脑候选名单(截止2023.10.13的价格,双十一活动可能会更便宜一点)
  • Springcloud笔记(4)-客户端负载均衡Ribbon
  • MediaRecorder媒体录音机
  • 短视频如何批量添加水印
  • RT-Thread MQTT(学习)
  • Vue_Bug VUE-ELEMENT-ADMIN默认是英文模式
  • Spark中的Driver、Executor、Stage、TaskSet、DAGScheduler等介绍
  • docker的资源限制参数设置错误,导致的clickhouse性能瓶颈
  • Vue路由守卫有哪些,怎么设置,有哪些使用场景?
  • 云原生网关可观测性综合实践
  • vue-element-admin—登录页面添加自定义背景
  • 软设上午题-错题知识点一
  • 微信小程序(小程序入门)
  • 虹科分享 | 想买车无忧?AR为您带来全新体验!
  • easyUI重新渲染
  • html和css基础练习
  • Linux信号 signal()编程
  • 【LeetCode】16.最接近的三数之和
  • 嵌入式开发学习之STM32F407点亮LED及J-Link下载(二)
  • 智能呼叫中心系统的未来发展趋势:为企业开启全新服务模式
  • UE5中实现沿样条线创建网格体2-SplineMesh版本
  • 实现Element Select选择器滚动加载
  • C++ 之 Vector 和 List
  • 力扣-448.找到所有数组中消失的数字
  • 常用gdb调试命令
  • 【动手学深度学习-Pytorch版】BERT预测系列——用于预测的BERT数据集
  • 【数据结构-字符串 三】【栈的应用】字符串解码