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

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

相关文章:

  • 基于值函数的强化学习算法之Double Q-Learning详解
  • 示波器电流探头校准规范指南
  • 软考 系统架构设计师系列知识点之杂项集萃(81)
  • nginx 同时支持ipv4与ipv6 配置
  • 【Android基础回顾】五:AMS(Activity Manager Service)
  • 猎板PCB有铜半孔技术:深空探测器的“神经骨架”
  • Git 推送失败解决教程——error: failed to push some refs to
  • 一、ES6-let声明变量【解刨分析最详细】
  • 【Java Web】9.Maven高级
  • 双空间知识蒸馏用于大语言模型
  • 沪铜6月想法
  • 监控硬盘可以当台式机硬盘用吗
  • Jenkins | Jenkins构建成功服务进程关闭问题
  • html文字红色粗体,闪烁渐变动画效果
  • jenkins脚本查看及备份
  • 可视化图解算法48:有效括号序列
  • 板凳-------Mysql cookbook学习 (十)
  • OD 算法题 B卷【BOSS的收入】
  • Abaqus的线弹性与塑性
  • LangChain 入门指南:基于 DeepSeek 模型构建对话流程(保姆级)
  • 网站代运营做哪些/营销推广方法有哪些
  • 溧阳网站开发/关键词搜索排名工具
  • 机械制造设备类企业网站织梦模板/关键词点击价格查询
  • 上海企业网络维护/移动端优化
  • asp.net程序做的网站安全吗6/互动营销用在哪些推广上面
  • 哪个网站做logo/推广图片大全