Vue 中 $set的使用

Jetson Orin 上拉取 GMSL 相机流并保存在 DMA 内存中 本文介绍了在NVIDIA Jetson Orin平台上实现GMSL相机DMA内存共享的低延迟采集方案。通过V4L2+NvBufSurface技术,将相机数据直接存入DMA缓冲区,避免传统流程中的CPU拷贝开销。文章详细说明了设备初始化、DMA缓冲区分配、V4L2绑定等关键步骤,并展示了调用示例。该方案支持零拷贝访问,适用于AI推理、硬件编码等场景,能显著提升车载视觉系统的实时性能,为多路GMSL相机接入和低延迟处理提供了高效解决方案。 阅读详情
AI摘要

本文详细介绍了在Vue.js开发中如何正确使用$set方法来处理实例创建后新增属性的问题,避免视图更新失败的情况。

vue.$set:设置的属性对象 可以是Object或者数组
设置的key值可以 string或者number类型
设置的值可以是任意值
在这里插入图片描述
在这里插入图片描述

vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去;
Vue文档有这么一句话:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新.,代码示例如下:

<div id="app">
  <ul>
    <li>{{obj.name}}</li>	
    	<li>{{obj.age}}</li>		
    	<li>{{obj.sex}}</li>		
    	<li>{{obj.info.content}}</li>
  </ul>
</div>
<script>
  let vm = new Vue({
    el:'#app',
    data() {
      return {
        obj:{name: "SMlZ",age: '3', info: {content: 'my name is smlz'}}
        }
    },
    mounted(){
      this.obj.sex = 'female' // 可以设置成功因为值设置成功了,但值没有属性,
      //如果后续更改这个值,比如在button上点击事件视图是不会更新的
      console.log(this.obj)
      this.$set(this.obj.info,'content', 'who is my girlfriend?')// 能设置成功
    }
  });
</script>

在实例创建前this.obj.sex = 'female' 你能看到视图有sex这一项,打印出来obj你会发现sex少了其他属性所共有的东西
在这里插入图片描述
所以 如果在实例创建之后添加新的属性或者更改这个sex属性到实例上,它不会触发视图更新。比如我们页面新加一个button 附带个点击事件:

<div id="app">
  <ul>
    <li>{{obj.name}}</li>
    <li>{{obj.age}}</li>
    <li>{{obj.sex}}</li>
    <li>{{obj.info.content}}</li>
    </li>
  </ul>
</div>
<button @click="showSex">显示性别</button>
<script>
let vm = new Vue({
  el:'#app',
  data() {
    return {
      obj:{
        name: "SMlZ",
        age: '3',
        info: {
          content: 'my name is smlz'
        }
      }
    }
  },
  methods:{
    showSex(){
      this.obj.sex = 'female' // Vue.set(this.obj,'sex', '女')//this.$set(this.obj,'sex', '女女');
    }
  },
  mounted(){
    this.obj.sex = 'female' // 可以设置成功因为值设置成功了,但值没有属性,
    //如果后续更改这个值,比如在button上点击事件视图是不会更新的。
    console.log(this.obj)
    this.$set(this.obj.info,'content', 'who is my girlfriend?');
  }
});
</script>

点击button 无论怎么更改是不会更新的,因为在创建实例的时候 缺少了vue 监听的 set、get属性
所以要在mounted里把初始值this.obj.sex = ‘female’ 去掉
或者直接在页面实例未创建完成前,用$set方法添加进去),这样在实例创建后 想更改或者添加新属性,用Vue.set()' 或者 this.$set()便成功了

完整代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>vue $set</title>
  <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
  <ul>
    <li>{{obj.name}}</li>
    <li>{{obj.age}}</li>
    <li>{{obj.sex}}</li>
    <li>{{obj.info.content}}</li>
    </li>
  </ul>
  <button @click="showSex">显示性别</button>
</div>
<script>
let vm = new Vue({
  el:'#app',
  data() {
    return {
      obj:{
        name: "SMlZ",
        age: '3',
        info: {
          content: 'my name is smlz'
        }
      }
    }
  },
  methods:{
    showSex(){
      Vue.set(this.obj,'sex', '女')//this.$set(this.obj,'sex', '女女');
    }
  },
  mounted(){
    this.$set(this.obj.info,'content', 'who is my girlfriend?');
  }
});
</script>
</body>
</html>
Xilinx DDR3 MIG IP核设计--汇总导航 快速上手Xilinx DDR3 IP核----汇总篇 阅读详情

相关推荐

Win10更新后黑屏只剩鼠标?火绒误杀explorer.exe的5种自救方案(附详细步骤)

本文详细介绍了Win10更新后出现黑屏只剩鼠标的5种专业修复方案,重点解决火绒误杀explorer.exe的问题。从基础的任务管理器操作到安全模式下的系统修复,再到注册表编辑和系统还原,提供了全面的解决方案,帮助用户快速恢复系统正常运行。

weixin_29306571的博客 635

vue中$set用法详细讲解

地址没有改变,vue就监测不到数据变化。这个时候,双向绑定就失效了。

Oralinge 16万+

经典点云配准算法:迭代最近点算法ICP(Iterative Closest Point)

迭代最近点算法,又名为 ICP(Iterative Closest Point)算法。 (1)ICP算法对初始值的依赖比较大,具体的配准过程中,如何选择初始值是一个问题,可以使用轮式里程计、imu预积分或其它先验的配准结果。 (2)ICP迭代次数过多,实际工程中需要考虑到其实时性的优化问题。 (3)迭代终止的阀值的设置也是需要考虑的点,可以考虑自适应阀值的方法。 (4)关于寻找最近点可以使用kdtree进行临近搜索。

qq_35102059的博客 1万+

完全掌握 Vue 中的 $set 方法

vue3中由于响应式实现原理发生了变化,所以不需要 $set 了,所以不做探究。一知半解,是我最讨厌的状态,今天就带着问题,再阅读一下对应的源码,了解问题的本质。今天在使用 $set 的时候,发现如果 被赋值的数据 层级较深会出现报错的情况。简单说明一下我遇到的问题,明确探究问题的目标。3.通过数组索引修改数据。上述的演示,源码查看的是。

lazy_tomato的博客 1万+

MATLAB实战:Gardner定时同步算法实现与BER曲线优化指南

本文详细介绍了Gardner定时同步算法在MATLAB中的实现与优化方法,重点解析了算法原理、关键步骤实现及BER曲线绘制中的常见问题解决方案。通过优化参数设置和系统架构,提升数字通信系统的符号同步性能,为QPSK、QAM等调制系统提供实用参考。

weixin_29085865的博客 230

Unity中Newtonsoft.Json的使用(一)

在Unity中下载Newtonsoft.Json,并进行序列化和反序列化

洛苍离的博客 1万+

Vue中的$set

项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: @Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes,

qq_45851085的博客 7401

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1079

Vue 6 ,Vue中的this.$set()使用教学,详细过程(Vue项目中this.$set()的妙用)

⭐this.$delete 也是一个实例方法,用于从响应式对象中删除属性,并确保该操作也是响应式的。使用this.$delete可以解决Vue响应式系统的另一个限制,即无法检测到通过索引直接删除数组元素的变化。通过this.$delete方法,可以显式地告诉Vue,某个属性已经被删除,从而触发视图的更新。

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 5万+

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1423

【CloudCompare】Windows源码编译CloudCompare

本文详细介绍了在Windows环境下编译安装CloudCompare V2.12.0的过程。首先配置了PCL 1.14.1、CMake 3.30.6和QT 5.14.2开发环境,使用Visual Studio 2022工具集。然后下载源码并通过CMake进行配置,特别注意勾选PLUGIN_STANDARD_QPCL以支持PCD文件加载。最后在VS2022中编译安装,并指出Debug模式下可能遇到的VTK库后缀问题,需添加CMAKE_DEBUG_POSTFIX变量解决。整个流程涵盖了从环境搭建到最终编译成功的

yijiujiusan的博客 484

vue中常用的api($set,$delete,$nextTick..)

set是 Vue 实例的一个方法,用于向响应式对象添加一个新的 property,并确保这个新 property 同样是响应式的,且触发视图更新。$set是 Vue 2.x 中解决响应式限制的重要工具,合理使用可以确保数据变化的响应性。但在 Vue 3 中,由于响应式系统的改进,$set的使用场景大大减少。在开发中,应根据 Vue 版本和具体场景选择合适的数据操作方式。$nextTick$nextTick在数据变化后安全地操作DOM确保获取到最新的DOM状态与第三方库正确集成。

qq_48763502的博客 2713

C#上位机+YOLO工业视觉全实战:从ONNX部署到产线缺陷检测落地(2026年工业级实战指南)

在2026年,工业视觉落地的核心挑战不是“能不能做”,而是“能不能在产线实时跑起来C#为何成为最优解?

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 730

Vue.$set的用法

官方资料: Vue.set( target, propertyName/index, value ) 参数: {Object | Array} target {string | number} propertyName/index {any} value 返回值:设置的值。 用法: 向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,...

janyxh的博客 7010

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Vue2中$set的使用

Vue2中$set的使用,如何一定程度上解决双向数据绑定的缺陷

凯凯凯凯凯凯凯凯 7911

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VUE中$set与$nextTick的使用

在VUE的使用中,可能很多开发者都遇到过当改变了数据的时候,视图并没有产生变化,这时就需要用到这两种API来解决了 首先,我们先总结下那些情况下会遇到视图不更新的情况: 为对象新增一个属性 改变数组的长度,交换数组的顺序,利用索引修改数据 另外VUE包装了观察数组的变异方法,它们能触发视图的更新: push() pop() shift() unshift() splice() sort...

weixin_42839080的博客 3934

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Vue之 $set的使用

1,什么时候使用$set set为解决双向绑定失效而生,只需要关注什么时候双向绑定失效就可以了。 2,Vue.set 和 this.$set this.$set 实例方法,该方法是全局方法 Vue.set 的一个别名 3,$set 用法 数组: this.$set(Array, index, newValue) 对象: this.$set(Object, key, value) 4,实例 data中未定义,手动给form添加age属性,并且点击按钮进行自增。 如果使用 this.form.age

weixin_44684357的博客 1万+

Vue中$set()的使用方法

Vue中$set()的使用方法

yuan0209的博客 1万+

vue $set 失效

图中圈起来的部分,设置了 $set 之后,期望是表单对应的 gstjbm 字段会自动改变数据,然而实际是 mainForm 的值变了,但是页面没有刷新。 问:问什么 $set 失效了? 解决:打断点进源码看看逻辑 代码执行到 1085 行(第一个断点的地方)就 return 了。这个是因为我们一开始就执行了 this.mainForm.gstjbm = '' 这样设置之后,就会满足第一个断点的逻辑。代码就没有跑下去 我们知道 vue2 是通过 get set 方式进行...

m0_37634363的博客 3627

vue中vm.$set函数的使用

vm.$set函数的使用

ME_GIRL的博客 1677

【vue】$set怎么使用

vue中在data(){}里的数据才是响应式的,有的场景,比如说后端返回的接口对象里,想再增加一个属性,作为响应式,这时候可以用到$set添加。$set总共三个参数,第一个为当前对象,第二个为属性名,第三个为属性值。

weixin_43444977的博客 248

Vue中$set的用法

什么情况下使用$set? 受现代 JavaScript 的限制,Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性遍历执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。 <!--先看一个例子--> <!DOCTYPE html> <html> &lt...

GoodIdea 1196

vue中$set原理

项目Vue 2Vue 3添加响应式属性需要$set不需要,直接赋值即可实现机制Proxy拦截所有操作数组监听依赖重写 push/splice 等方法Proxy 完整拦截需要我帮你用简单代码实现一个简化版的$set吗?可以更好理解它的内部逻辑。

qq_25416827的博客 1622

Vue 中 $set() 与 Vue.set() 原理及使用

1. 前言 问题: 在使用 vue 进行开发的过程中,可能会遇到一种情况:当生成vue实例后,再次给数据赋值时,有时候并不会自动更新到视图上去。也就是如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。 案例: <template> <div class="home"> <div v-for="(item,index) in items" :key="index">{{item}}</div> <button @click="bt

明天也要努力的博客 1万+

vue $set修改对象

在vue开发中,当生成vue实例后,再次给数据赋值时,有时候并不会自动更新到视图上去; eg:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

u011927449的博客 1855

vue2中$set的作用和原理

Vue2的$set方法用于解决响应式系统的局限性,通过Object.defineProperty手动为新增属性创建响应式。它适用于:1)为对象添加响应式属性;2)通过索引修改数组元素;3)改变数组长度。其原理是调用defineReactive或重写的数组方法确保触发视图更新。Vue3改用Proxy实现响应式,不再需要此方法。摘要简明扼要地概括了$set的作用、原理和应用场景,同时提及了Vue3的改进方案。

weixin_51122575的博客 807
上一篇: 详解Vue的生命周期
下一篇: Vue 中 render函数
devincob
博客等级 码龄10年 72粉丝 126原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值