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

this.$set() 的用法详解(Vue响应式系统相关)

1. 什么是 this.$set()

this.$set(target, key, value) 是 Vue 2 中提供的一个方法,用于向响应式对象中动态添加属性,确保新加的属性同样是响应式的。 

2. 为什么需要它?

Vue 2 的响应式系统基于 Object.defineProperty,它只能检测到对象已有属性的变化,无法检测新增的属性。 

data() {return {user: {}}
},
methods: {addProp() {this.user.name = 'fang'; // 直接赋值不会触发视图更新}
}

 这样写,不会触发视图更新,因为 user 对象一开始没有 name 属性。

3. 正确用法:
 

this.$set(this.user, 'name', 'fang');

 4. 具体示例:

export default {data() {return {info: {}}},methods: {addInfo() {this.$set(this.info, 'age', 30);// 或者Vue.set(this.info, 'age', 30); // 组件外用Vue全局对象调用}}
}

5. Vue 3 情况

Vue 3 使用 Proxy 实现响应式,天然支持新增属性的响应式,不需要 $set

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

相关文章:

  • PARADISE:用于新生儿缺氧缺血性脑病(HIE)疾病识别与分割的个性化和区域适应性方法|文献速递-深度学习医疗AI最新文献
  • RabbitMQ 监控与调优实战指南(二)
  • WordPress子主题RiPro-V5van无授权全开源版(源码下载)
  • 保姆级Elasticsearch集群部署指导
  • PyQt实现3维数组与界面TableWidget双向绑定
  • StoreView SQL,让数据分析不受地域限制
  • 护网面试题目2025
  • Figma 与 Cursor 深度集成的完整解决方案
  • UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
  • rabbitmq Fanout交换机简介
  • 【机器学习】集成学习与梯度提升决策树
  • Palo Alto Networks Expedition存在命令注入漏洞(CVE-2025-0107)
  • WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤
  • JAVA-springboot JUnit单元测试
  • hot100 -- 6.矩阵系列
  • PyCharm中运行.py脚本程序
  • 吴恩达MCP课程(5):research_server_prompt_resource.py
  • [论文阅读] 人工智能+项目管理 | 当 PMBOK 遇见 AI:传统项目管理框架的破局之路
  • Gateway 搭建
  • pytorch基本运算-导数和f-string
  • impala中更改公网ip为内网ip
  • 5.RV1126-OPENCV 图形计算面积
  • 一键净化Excel数据:高性能Python脚本实现多核并行清理
  • 【Android基础回顾】一:Binder机制是什么?有什么用?
  • LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上
  • 资产智慧管理安全监测中心
  • 从零开始的云计算——番外实战,iptables防火墙项目
  • 移动网页调试的多元路径:WebDebugX 与其他调试工具的组合使用策略
  • 【基于阿里云搭建数据仓库(离线)】IDEA导出Jar包(包括第三方依赖)
  • 【HarmonyOS 5】鸿蒙HarmonyOS —(cordova)研发方案详解