Vue中$set()的使用方法

这篇具有很好参考价值的文章主要介绍了Vue中$set()的使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 由于 Vue 会在初始化实例时进行双向数据绑定,使用Object.defineProperty()对属性遍历添加 getter/setter 方法,所以属性必须在 data 对象上存在时才能进行上述过程 ,这样才能让它是响应的。如果要给对象添加新的属性,此时新属性没有进行过上述过程,不是响应式的,所以会出现数据变化,页面不变的情况。此时需要用到$set

$set()的应用场景一

  • 在使用 vue 进行代码开发时,经常会遇到需要给一个响应式对象增加属性的情况

  • 示例数据文章来源地址https://www.toymoban.com/news/detail-417863.html

myInfo: {
  name: 'wintercat',
  age: '18'
}
  • 刚开始我们可能会这样写this.myInfo.age = 23属性是增加上去了,但一会之后你就会发现不对劲,为啥这个新增的属性不是响应式的,这种时候应该使用$set去添加属性,this.$set(this.myInfo, 'age', 24),这时对象数据就变成响应式的了

  • 这个方法接收三个参数

    参数 描述
    target 可以是数组或者对象,是准备添加属性的对象或者数组
    name/index 准备添加的属性的属性名或数字的索引
    value 准备添加的属性的值或者数组索引的值

$set()的应用场景二

  • 在我们拿到后端返回的数据进行页面渲染时发现需要显示的数据的字段名都是一样的,但是给了一个字段名进行区分,这种情况下我们就需要拿到进行区分的字段名的值当做键名,通过使用键值对的形式返回一个新的数据对页面进行渲染

  • 示例数据

newInfo:[],
info:[
  {
    age:20, 
    name:'张三'
  },
  {
    age:30, 
    name:'李四'
  },
  {
    age:40, 
    name:'王五'
  },
]
  • 我们先对数据进行循环然后通过$set去添加需要的数据格式,这样我们拿到的数据就是我们想要的数据:name:age
this.info.map((item) => {
  this.$set(this.newInfo, item.name, item.age)
})
console.log(this.newInfo)
// this.newInfo:[{'张三', 20},{'李四', 30},{'王五', 40}]

到了这里,关于Vue中$set()的使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue 先初始化父组件再初始化子组件的方法(自定义父子组件mounted执行顺序)

    写在前面: 本篇内容内容主要讲述了,在使用 Konva 进行开发过程中遇到的一些问题。(既然是组件加载顺序,主要牵扯到的就是,父子组件的关系,父子组件的生命周期) 众所周知, Vue 中父子组件生命周期的执行顺序为: 然而,在某些情况下我们有其他需求,例如我们不

    2024年02月12日
    浏览(49)
  • ChatGPT:概述Vue.js中data函数初始化和created钩子函数调用的顺序和问题解决方法

    我将输入一段Vue代码,请你记住: ChatGPT: 你提供的代码是一个Vue.js组件中的 data 和 created 部分。这部分代码包含了组件的数据和生命周期钩子函数。 在 data 中,你定义了一些数据属性,包括查询信息、分页信息、总记录数、表格数据以及一些表单相关的数据和控制属性。

    2024年02月09日
    浏览(51)
  • 国民技术N32G430开发笔记(12)- IAP升级 Settings区域数据初始化

    1、假如,有两个产品,A产品跟B产品,硬件都一样,要求一个软件里的board_name为N32G430C8L7_STB_A,另一个软件里的board_name为N32G430C8L7_STB_B。 那我们如何在不改boot程序跟App程序的基础上,快速的使两个软件看上去不同呢? 这里我们将setting区域的数据提前初始化,通过c语言的文

    2024年02月01日
    浏览(52)
  • 由于找不到msvcr120.dll,无法继续执行代码怎么修复,可以使用这个三个方法

    msvcr120.dll是 Microsoft Visual C++ Redistributable 中的一个文件,是Windows系统非常重要组件,它包含了大量用于 C++ 程序的函数和类库。这个文件用于一些应用程序或游戏,如果丢失或受损,就可能会导致这些程序无法正常启动或运行,打开会提示“由于找不到msvcr120.dll,无法继续执行

    2024年02月16日
    浏览(62)
  • C#的 Settings.Settings配置文件的使用方法

    1、定义 在Settings.settings文件中定义配置字段。把作用范围定义为:User则运行时可更改(用户范围的字段数据更改存储在用户信息中,不在该程序文件中),Applicatiion则运行时不可更改。可以使用数据网格视图(VS软件的Properties 下面的Setting.settings设置即可),很方便; 2、读取配置

    2024年02月22日
    浏览(36)
  • 由于系统错误 1114:动态连接库(DLL)初始化例程失败。(MySQL ODBC 5.3 Unicode Driver,c:\Program Files(x86)\MySQL\Connector

    客户端提示:由于系统错误 1114:动态连接库(DLL)初始化例程失败。(MySQL ODBC 5.3 Unicode Driver,c:Program Files(x86)MySQLConnector ODBC 5.3myodbc5w.dll),指定驱动程序无法加载。(错误提示框参见图片)。   解决办法:问题原因,是MySQL的ODBC 驱动版本问题。 开始安装的5.3.13版本,出

    2024年02月17日
    浏览(33)
  • 使用“vue init mpvue/mpvue-quickstart“初始化mpvue项目时出现的错误及解决办法

    当使用\\\"vue init mpvue/mpvue-quickstart\\\"初始化 mpvue 项目时出现 原因是 github 的 IP 解析失败,连接超时 解决办法:更改最新的 github 的 IP 解决步骤: 打开 IP 查询或者其他 IP 查询网站 输入 github.com 进行查询 找到一大堆 IP 在终端运行 ping IP 在这里我找了三个,前两个都是请求超时 这

    2024年02月09日
    浏览(41)
  • 数据结构,Map和Set的使用方法

    在数据结构中我们经常会使用到 Map 和 Set ,Map 和 Set 到底是什么,它怎样去使用呢?因此博主整理出 Map 和 Set 这两个接口的介绍与使用方法。 目录 1. 啥是Map和Set? 1.1 Map和Set的模型 2. Map的使用 2.1Map的说明 2.2 Java中Map常用的方法 3. Set的使用 3.1Java中Set的常用方法  Map 和 Set

    2023年04月26日
    浏览(41)
  • vue中初始化

    主要是挂载一些全局方法 响应数据相关的Vue.set, Vue.delete, Vue.nextTick以及Vue.observable 插件相关的Vue.use 对象合并相关Vue.mixin 类继承相关的Vue.extend 资源相关,如组件,过滤器,自定义指令Vue.component, Vue.filter, Vue.directive 配置相关Vue.config以及Vue.options中的components,filters,directives 定

    2023年04月22日
    浏览(49)
  • Vue初始化项目加载逻辑

    项目创建 我们只需要创建项目即可,剩余的依赖都没必要安装 我们先来看main.js,咱们加了一行备注 通过备注可知,我们首先加载的是App.vue 我们再来看一下App.vue 里都有啥 也就是下面这个红框里的内容才是 那下面的内容是哪里来的呢 那就需要看一下路由设置了 我们看到/目

    2024年02月08日
    浏览(104)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包