vue中 this.$set 的作用

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

在 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 函数中创建它。
  • 当你需要在循环或计算属性中使用新添加的属性时,确保这些属性在访问前已经被正确地添加到响应式对象中,否则可能会出现错误或不一致的行为。

相关推荐

  1. vue&react作用

    2024-05-09 15:40:05       35 阅读
  2. vuethis.$nextTick作用

    2024-05-09 15:40:05       12 阅读
  3. Vuekey作用和原理

    2024-05-09 15:40:05       33 阅读
  4. vue this.$set 作用

    2024-05-09 15:40:05       15 阅读
  5. Vue .passive 修饰符作用

    2024-05-09 15:40:05       10 阅读
  6. vue$refs用法及作用详解

    2024-05-09 15:40:05       30 阅读
  7. Vue$attrs作用和使用方法

    2024-05-09 15:40:05       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-09 15:40:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-09 15:40:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-09 15:40:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-09 15:40:05       20 阅读

热门阅读

  1. Diesel 的安装与数据库迁移

    2024-05-09 15:40:05       13 阅读
  2. 8086 汇编学习 Part 7

    2024-05-09 15:40:05       13 阅读
  3. Android 3D翻转实现

    2024-05-09 15:40:05       11 阅读
  4. redux实现原理

    2024-05-09 15:40:05       13 阅读
  5. 算法精讲:冒泡排序

    2024-05-09 15:40:05       13 阅读
  6. C++类型与声明

    2024-05-09 15:40:05       14 阅读
  7. 每天一个数据分析题(三百一十三)-漏斗模型

    2024-05-09 15:40:05       16 阅读
  8. var, let, const 的区别

    2024-05-09 15:40:05       12 阅读