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

Vue中$set用法解析

当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值,但是遇到以下情况不会进行数据的双向绑定。

  • 当你利用索引直接改变一个数组项时;例如:vm.arr[index] = value;
  • 当你修改数组长度时;vm.arr.length = value;

数据没有被双向绑定的时候,我们就需要使用set了;

<template><div><ul><li v-for="value in user" :key="value">{{ value }}</li></ul><button @click="add">添加属性</button></div>
</template><script>
export default {data() {return {user: {name: "哈利波特",},};},methods: {add() {this.user.sex = "男";console.log(this.user)},},
};
</script>

点击button会发现,obj.b已经成功添加,但是视图层未刷新。这是因为在vue实例创建时,obj.b并未声明,因此就没有被Vue转换为响应式的属性,自然就不会触发视图的更新,这时就需要使用Vue的全局api——$set()了;

        add() {this.$set(this.user,'sex','女')},

$set()方法相当于手动的去把user.sex处理成一个响应式的属性,此时视图也会跟着变了;

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

相关文章:

  • 进制,码制及其表示范围
  • 钡铼技术R40工业4G路由器加速推进农田水利设施智能化
  • 基于龙芯2k1000 mips架构ddr调试心得(一)
  • 智能合约语言(eDSL)—— 使用rust实现eDSL的原理
  • 敏捷开发——elementUI/Vue使用/服务器部署
  • uniapp 使用sqlite时无法读取到db文件中的数据
  • Linux 网络接口管理
  • 【设计模式】Java 设计模式之模板策略模式(Strategy)
  • SpringBoot项目前端Vue访问后端(图片静态资源) 配置
  • colab中数据集保存到drive与取出的方法
  • React 应该如何学习?
  • 跨平台无缝操作:ShareMouse让多电脑协同更高效
  • Vue使用pandoc-wasm进行各格式转换
  • springboot284基于HTML5的问卷调查系统的设计与实现
  • AI短视频制作一本通:文本生成视频、图片生成视频、视频生成视频
  • 详谈分布式事务
  • Java基础知识八股
  • 【Linux】网络基础一
  • Redis-2 Redis基础数据类型与基本使用
  • python提取身份证中的生日和性别
  • opencv 傅里叶变换(低通滤波 + 高通滤波)
  • Educational Codeforces Round 163 (Rated for Div. 2)(A,B,C,D,E)
  • 索引常见面试题
  • 【Unity】旋转的尽头是使用四元数让物体旋转
  • 哔哩哔哩秋招Java二面
  • OSPF特殊区域(stub\nssa)
  • 全球首位AI程序员诞生,将会对程序员的影响有多大?
  • 【晴问算法】提高篇—动态规划专题—最长上升子序列
  • 天软特色因子看板(2024.3第5期)
  • 静态网络配置