vue中 this.$set 的作用

ops/2024/10/18 18:28:14/

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新

在 Vue.js 中,this.$set 是一个实例方法,用于向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。这个方法主要用于解决 Vue 不能检测对象属性的添加或删除的问题。

当你向一个已经创建的响应式对象添加新的属性时,Vue 默认不会触发视图的更新,因为这个属性并不是在 Vue 实例化过程中就存在的。为了解决这个问题,你可以使用 this.$set 方法。

export default {  data() {  return {  obj: {  a: 1  }  };  },  methods: {  addProp() {  // 如果没有使用 this.$set,视图不会更新  this.$set(this.obj, 'b', 2);  }  }  
};
export default {  data() {  return {  arr: ['apple', 'banana']  };  },  methods: {  changeElement() {  // 使用索引直接修改数组元素,视图可能不会更新  // this.arr[1] = 'orange'; // 这可能不会触发视图更新  // 使用 this.$set  this.$set(this.arr, 1, 'orange'); // 这会触发视图更新  }  }  
};

注意事项

  • 当你需要向一个对象添加多个新属性时,可以多次调用 this.$set,或者使用 Object.assign() 或其他方法创建一个新的对象,然后将其赋值给响应式对象。但请注意,使用 Object.assign() 创建的新对象并不是响应式的,除非你在 Vue 实例化之前或在组件的 data 函数中创建它。
  • 当你需要在循环或计算属性中使用新添加的属性时,确保这些属性在访问前已经被正确地添加到响应式对象中,否则可能会出现错误或不一致的行为。

http://www.ppmy.cn/ops/39911.html

相关文章

【Android】Kotlin学习之Kotlin方法的声明和传参

方法声明 普通类的方法 静态类的方法 不需要构建实例对象, 可以通过类名直接访问静态方法 : NumUtil.double(1) companion object 伴生类的方法 使用companion object 在普通类里定义静态方法 参数 括号内传入方法 : 当参数是方法时, 并且是最后一个参数 , 可以使用括号外…

学QT的第三天~

ikun登录界面完善 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { //1.实例化一个QmessageBox类的对象 QMessageBox box(QMessageBox::Information, //图标 "恭喜…

Web前端开发之JavaScript_2

条件语句三元运算符循环语句字符串数组 1. 条件语句 1.1 if语句 if (布尔值){ // “布尔值”往往由一个表达式产生,其中,赋值表达式不具备比较作用 语句; } 1.2 if...else 语句 if...else可成对单独使用,也可多层if...else …

笨方法自学python(一)

我觉得python和c语言有很多相似之处,如果有c语言基础的话学习python也不是很难。这一系列主要是学习例题来学习python;我用的python版本是3.12 代码编辑器我用的是notepad,运行py程序用cmd 现在开始写第一个程序: print ("…

前端css中animation(动画)的使用

前端css中animation的使用 一、前言二、主要内容说明(一)、animation-name(名称)属性(二)、animation-duration(持续时间)属性1.前两个属性举例,源码12.源码1运行效果&am…

Springboot 单体thymeleaf极简门户网站

企业门户网站,基于Springboot和layui 1、原介绍 使用技术:后端框架:SpringBoot,Mybatisplus ### 数据库:MySQL,redis ## 前端框架:Layui ## 权限框架:shiro ## 网页模板引擎:thyme…

apache与nginx下安装zabbix

apache下安装zabbix #进入zabbix官网 https://www.zabbix.com/ #选择好要配置的服务#安装zabbix存储库 [rootzabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootzabbix-server ~]# yum clean all #清理…

什么是XXE漏洞,日常如何做好web安全,避免漏洞威胁

随着网络技术的不断发展,网站安全问题日益受到人们的关注。当前随着技术发展,网站存在一些常见的可能被攻击者利用的漏洞,而在众多网站安全漏洞中,XXE(XML External Entity)漏洞是一个不容忽视的问题。今天…