♥ vue中$set用法详细讲解
♥ vue中$set用法详细讲解
1、认识
在vue中,并不是任何时候数据都是双向绑定的。
官方文档介绍

使用场景
当数据没有被双向绑定的时候,我们就需要使用set了`
举个例子:
vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的。
2、$set用法
数据没有被双向绑定我们可以使用 vm.$set 实例方法,该方法是全局方法 Vue.set 的一个别名
- this.$set(原数组, 索引值, 需要赋的值)
length的问题还需要用splice方法
- vm.items.splice(newLength)
set为解决双向绑定失效,所以什么时候双向绑定失效就用它
当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
当你修改数组的长度时,例如:vm.items.length = newLength
由于 JavaScript 的限制,Vue不能检测对象属性的添加或删除
var vm= new Vue({data: {a: 1}
})
// `vm.a` 现在是响应式的vm.b = 2
// `vm.b` 不是响应式的
vm.a是响应式的, vm.b不是响应式的
简单来说
对象中原来有这个key=> 双向绑定
对象中原来没有这个key,新增的key=>不是双向绑定
vm.$set(con.userProfile, 'age', 27)
进一步使用
如果我们添加的属性很多条,可能就需要写一个循环来多次set
你也可能使用Object.assign,这里有一些需要注意的地方。
如果你想添加新的响应式属性,下面这样写是不行的。
Object.assign(vm.userProfile, {age: 27,favoriteColor: 'Vue Green'
})
这样才是正确的
vm.userProfile = Object.assign({}, vm.userProfile, {age: 27,favoriteColor: 'Vue Green'
})
3、原理
————————————————————————————
由于 Vue 会在初始化实例时进行双向数据绑定,使用Object.defineProperty()对属性遍历添加 getter/setter 方法,所以属性必须在 data 对象上存在时才能进行上述过程 ,这样才能让它是响应的。如果要给对象添加新的属性,此时新属性没有进行过上述过程,不是响应式的,所以会出想数据变化,页面不变的情况。此时需要用到$set。
向响应式对象中添加一个 property,并确保这个新 property 同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新 property,因为 Vue 无法探测普通的新增 property
(比如 this.myObject.newProperty = ‘hi’)
————————————————————————————
相关文章:
♥ vue中$set用法详细讲解
♥ vue中$set用法详细讲解 1、认识 在vue中,并不是任何时候数据都是双向绑定的。 官方文档介绍 使用场景 当数据没有被双向绑定的时候,我们就需要使用set了 举个例子: vue的data里边声明或者已经赋值过的对象或者数组(数组里…...
岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测
岩土工程仪器多通道振弦传感器信号转换器应用于桥梁安全监测 桥梁作为交通运输的重要节点,其安全性一直备受关注。不同于其他建筑物,桥梁所处的环境复杂多变,同时,其所需承受的负荷也相对较大,这就需要对桥梁的安全进…...
企业权限管理(六)-订单详情
订单详情查询 跳转到订单详情页面orders-show.jsp <button type"button" class"btn bg-olive btn-xs" onclick"location.href${pageContext.request.contextPath}/orders/findById.do?id${orders.id}">详情</button>OrdersControl…...
基于Tars高并发IM系统的设计与实现-实战篇5
基于Tars高并发IM系统的设计与实现-实战篇5 群聊服务 GroupChatServer 群聊服务既可以接受来自BrokerServer的用户请求,也需要接收来自其他服务的RPC请求;所以本服务提供两套RPC接口:通用RPC接口和专用RPC接口。 通用RPC接口 通用RPC接口主要处理如下…...
水溶性Cyanine3 N3叠氮化物Cy3 azide星戈瑞
欢迎来到星戈瑞荧光stargraydye! ICG-DBCO点击化学反应在生物标记物探测中应用。通过将ICG-DBCO与具有炔基的生物标记物结合,可以实现快速、选择性和稳定的共价连接,从而实现生物标记和探测。 **以下是ICG-DBCO点击化学反应在生物标记物探测中的一些应用…...
客户案例 | 永续发展,低代码助力“双碳”战略历史使命
关键发现 客户痛点:应对企业数字化转型,新技术能否提升绩效的不确定性,投资带来的风险性,以及企业组织架构的适应性等难点问题。作为业务驱动型企业,欠缺快速构建数字化产品方案的能力。 解决方案:利用西门…...
[保研/考研机试] KY187 二进制数 北京邮电大学复试上机题 C++实现
描述 大家都知道,数据在计算机里中存储是以二进制的形式存储的。 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗?并且,小…...
SpringBoot 热部署
一、启动热部署 1.1 开启开发者工具 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional> </dependency>…...
BLE蓝牙协议栈分析
BLE——协议层次结构 一、BLE Controller Controller实现射频相关的模拟和数字部分,完成最基本的数据发送和接收,Controller对外接口是天线,对内接口是主机控制器接口HCI(Hostcontroller interface); 控制…...
flutter开发实战-BackdropFilter高斯模糊子Widget控件
flutter开发实战-BackdropFilter高斯模糊子Widget。 最近开发过程中遇到需要将控件进行模糊,比如iOS的effect的模糊效果。那在flutter中就需要用到了BackdropFilter 一、BackdropFilter BackdropFilter属性定义 BackdropFilter({Key key, required ImageFilter …...
嵌入式面试刷题(day3)
文章目录 前言一、怎么判断两个float是否相同二、float数据可以移位吗三、数据接收和发送端大小端不一致怎么办四、怎么传输float类型数据1.使用联合进行传输2.使用字节流3.强制类型转换 总结 前言 本篇文章我们继续讲解嵌入式面试刷题,给大家继续分享嵌入式中的面…...
JVM源码剖析之Java命令行参数全解
最近,有一位网友询问关于Java命令行参数方面的问题,因为在Java中参数有很多种,有不少的读者一直没弄明白,所以特意写下此篇文章。 此篇文章分2大块,第一块是不同参数的解释,第2块就是JVM源码论证ÿ…...
抽象工厂模式-java实现
介绍 抽象工厂模式基于工厂方法模式引入了“产品族”的概念,即我们认为具体产品是固定的,具体产品存在等级之分,比如我们常说的手机,有“青春版”,“至尊版”,“至臻版”。一个产品有多个版本族。这时候&a…...
机器学习笔记 - 基于Python发现最佳计算机视觉模型的神经架构搜索技术NAS
一、简述 近年来,随着深度学习技术的兴起,计算机视觉领域取得了巨大进步。事实证明,卷积神经网络 (CNN) 在图像识别任务中异常强大,但针对特定问题设计最佳架构仍然是一项具有挑战性的任务。这就是神经架构搜索(NAS)发挥作用的地方。NAS 是一种尖端技术,可以自动发现高性…...
机器学习---自编码器
自编码器过程 输入一个图片,经过encoder变成一个向量,再通过decoder将这个向量反向生成输入的图片。 这里我们希望输入和输出越接近越好。这个过程我们称为重建。 特点:不需要任何的标注资料。 在2006年这个思想就被提出来了: …...
vuejs 设计与实现 - 渲染器的设计
渲染器与响应式系统的结合 本节,我们暂时将渲染器限定在 DOM 平台。既然渲染器用来渲染真实 DOM 元素,那么严格来说,下面的函数就是一个合格的渲染器: // 渲染器: function renderer(domString, container) {container.innerHTM…...
openCV 图像对象的创建和赋值
文章目录 一、赋值二、克隆三、拷贝四、初始化 一、赋值 赋值操作是将一个cv::Mat对象的数据复制到另一个对象中。赋值操作使用的是浅拷贝(shallow copy),即两个对象共享相同的数据内存。这意味着对一个对象的修改会影响到另一个对象 cv::M…...
idea - 刷新 Git 分支数据 / 命令刷新 Git 分支数据
一、idea - 刷新 Git 分支数据 idea 找到 fetch 选项,重新获取分支数据 二、命令刷新 Git 分支数据 git fetch参考链接 1. 远程Gitlab新建的分支在IDEA里不显示...
线上电影购票选座H5小程序源码开发
搭建一个线上电影购票选座H5小程序源码需要一些基本的技术和步骤。以下是一个大致的搭建过程,可以参考: 1. 确定需求和功能:首先要明确你想要的电影购票选座H5小程序的需求和功能,例如用户登录注册、电影列表展示、选座购票、订单…...
QT正则校验
文章目录 前言一、Qt正则校验1.对输入框进行校验,不允许输入其他字符2.直接校验字符串 二、常用正则校验表达式 前言 项目中会经常遇到需要对字符串进行校验的情况,需要用到正则表达式(Regular Expression,通常简写为RegExp、RE等…...
免费获取数字资源的创新方法
免费获取数字资源的创新方法 在信息爆炸的时代,我们每天都被海量数字资源包围,却常常因付费墙、访问限制而望洋兴叹。你是否曾遇到这样的困境:发现一篇重要研究论文却被要求订阅付费?找到心仪的学习视频却被告知仅限会员观看&…...
20个AI核心概念轻松入门:从零基础到实战应用,秒变AI达人!
本文以最简单的方式拆解了20个最重要的AI概念,涵盖神经网络、迁移学习、分词、嵌入向量、注意力机制、Transformer模型、大语言模型(LLM)、上下文窗口、温度系数、幻觉等,旨在帮助零基础读者理解AI底层原理。文章通过直观例子和清…...
从零搭建本地版 Claurst:基于 Rust 重构的 Claude Code 终端编码助手 + LM Studio 模型接入测试
从零搭建本地版 Claurst:基于 Rust 重构的 Claude Code 终端编码助手 LM Studio 模型接入测试 Kuberwastaken/claurst: Your favorite Terminal Coding Agent, now in Rust Claurst 是一款基于 Rust 重构的开源终端编码助手,复刻了 Claude Code 的核心交…...
工商业储能柜的 OEM 定制需要关注哪些关键指标?
“同一款工商业储能柜,为什么不同工厂的报价差异能达到 30%?” 这是不少储能贸易商在筛选供应商时遇到的典型问题。随着国内峰谷电价差持续拉大,工商业储能需求快速释放,但面对市场上五花八柜的产品方案,贸易商往往难以…...
长沙心理科门诊指南:暖心案例分享与就诊复盘
行业痛点分析 当前长沙心理领域面临多重技术挑战。一方面,公众对心理疾病的认知仍存在偏差,病耻感导致轻症患者延误干预,重症患者因恐惧社会评价而回避治疗。测试显示,长沙市18-45岁人群中有近35%存在不同程度的情绪困扰…...
Shell流程控制(if-else、循环,实现复杂逻辑)
在Linux/Unix系统中,Shell脚本是自动化运维、批量处理任务的核心工具,而流程控制则是让脚本“摆脱线性执行”、实现灵活逻辑的关键。无论是简单的条件判断(如“文件是否存在”),还是复杂的批量操作(如“遍历…...
外卖霸王餐API接口架构设计思路分析
外卖霸王餐API接口架构设计思路分析 对于开发者而言,构建一套高并发、高可用的外卖霸王餐API接口架构,是实现流量主与外卖平台(美团、饿了么)数据互通的关键。本文将基于俱美开放平台(http://www.baodanbao.com.cn)的技术实践&am…...
OpenTiny NEXT 从入门到精通·第 6 篇
OpenTiny NEXT 从入门到精通第 6 篇:架构篇——跨框架集成与微前端实战在企业级前端开发中,多技术栈共存、存量系统迁移、微前端集成是绕不开的三大难题。你可能正在维护一个 Vue 2 的老项目,新业务要用 Vue 3 开发,团队中还有 Re…...
Bugku普通的二维码、薛定谔的猫
普通的二维码解压文件夹是一个二维码扫描得到用010 Editor十六进制文本编辑器打开发现一串数字(仅有0-7,推测是八进制)14615414114717311014116614513717106012513712017113716314316215116016413711716414313712415713712414515613710116314…...
从卫星影像到土壤侵蚀图:ArcGIS栅格计算实战全记录(含Pikachu靶场同款数据)
从卫星影像到土壤侵蚀图:ArcGIS栅格计算全流程实战指南 当Landsat卫星以每秒7公里的速度掠过地球表面时,它的传感器正在捕捉从可见光到红外波段的电磁波信息。这些看似抽象的数字背后,隐藏着解读地表植被覆盖与土壤侵蚀状况的密码。作为环境评…...
