Vue中this.$set()的使用场景和用法以及与Vue.set()的区别

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

目录

1.this.$set()的使用场景

2.this.$set()的用法

3.this.$set()和Vue.set()的区别


1.this.$set()的使用场景

   Vue声明在data中的属性都是响应式的,也就是,我们在修改data中的属性时,一般页面都能实时更新。但是由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。比如我们对data中的对象属性和数组属性进行一些修改时,无法响应式更新渲染到页面,因此vue提供了$set这个API来解决这个限制。

当我们给一个对象添加属性时,在控制台上可以打印出来,但是视图却没有更新,此时this.$set()就派上用场了

2.this.$set的用法

首先先说明一下this.$set()中传参的含义:

this.$set( target, key, value )
target:要更改的数据源(可以是对象或者数组)
key:要更改的具体数据
value :重新赋的值

下面就着重来说明我在开发过程中的用法,希望对大家有所帮助,废话不多说,直接上代码:

此块是html部分:

<template>
  <div>
     <div v-for="item in goodList" :key="item.id">
      {{item.name}}&nbsp;&nbsp;&nbsp;{{item.value}}
    </div>
    <Button type="success" @click="handleClick()">改变数据</Button>
  </div>
</template>

  此块是js部分:

1)在没有使用this.$set()的情况下:

<script>
export default {
  name: 'mySet',
  data () {
    return {
      goodList: [
        {name: '书本', value: '200元', id: 1},
        {name: '玩偶', value: '200元', id: 2},
        {name: '薯片', value: '300元', id: 3}
      ]
    }
  },
  methods: {
    handleClick () {
      this.goodList[3] = {name: '口罩', value: '409元', id: 4}
      console.log(this.goodList)
    }
  }
}
</script>

 此时点击按钮,控制台可以看到新增数据,但是视图却没有变化:

this.$set,前端开发过程问题汇总,vue.js,前端,javascript

this.$set,前端开发过程问题汇总,vue.js,前端,javascript 

 2)在使用this.$set()的情况下:(直接修改methods中handleClick方法)

 methods: {
    handleClick () {
      this.$set(this.goodList, 3, {name: '口罩', value: '409元', id: 4})
      console.log(this.goodList)
    }
  }

此时点击按钮,控制台上可以看到,视图也发生了变化:

this.$set,前端开发过程问题汇总,vue.js,前端,javascript

 3.this.$set()和Vue.set()的区别

Vue.set( ) 是将 set 函数绑定在 Vue 构造函数上,this.$set() 是将 set 函数绑定在 Vue原型上。

 文章来源地址https://www.toymoban.com/news/detail-638530.html

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

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

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

相关文章

  • 前端缓存方式以及区别(vue项目)

           vuex、cookie、sessionStorage、localStorage vuex主要用于vue 组件之间的通信,页面一刷新数据就会消失。 原因:        vuex 是挂载到vue实例上的,相当于全局变量,当页面一刷新,页面重新加载vue 实例,vuex里面的数据被重新赋值。 使用: https://vuex.vuejs.org/zh/ 一般结合

    2024年04月14日
    浏览(55)
  • Gateway网关路由以及predicates用法(项目中使用场景)

    1.Gateway+nacos整合微服务 服务注册在nacos上,通过Gateway路由网关配置统一路由访问 这里主要通过yml方式说明: route:     config:     #type:database nacos yml     data-type: yml     group: DEFAULT_GROUP     data-id: jeecg-gateway-router 配置路由:   通过断言里Path地址访问到对应的system-service服务

    2024年02月12日
    浏览(73)
  • C++引用的相关定义以及使用场景与指针之前的区别

    🌏博客主页: 主页 🔖系列专栏: C++ ❤️感谢大家点赞👍收藏⭐评论✍️ 😍期待与大家一起进步! 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 引用的特性: 引用在定义时必

    2024年02月03日
    浏览(30)
  • $monitor, $strobe, $write以及$display的区别及使用场景

    $display 与 $strobe 来看下面一个例子: 结果如下: 这里 $display 语句是在 active 区域执行的,而 44行的赋值语句则是在 NBA 区域执行的,所以每次 $display 打印出来的 a 的值都是前一个值; 而对于 $strobe ,是当每次 #5 时刻所有的操作都执行完后才开始打印,所以 $strobe 打印出来的

    2023年04月08日
    浏览(27)
  • Docker和K8s区别,使用场景,具体怎么使用以及详细命令

    Docker 和 Kubernetes(简称 K8s) 都是容器技术领域中非常重要的工具,但它们在构建、部署和管理容器化应用程序方面发挥着不同的作用。本文将详细介绍 Docker 和 Kubernetes 的区别、使用场景以及具体的命令使用方法。 Docker 是一种轻量级容器技术,可用于打包、交付和运行应用程

    2024年02月15日
    浏览(31)
  • 简述 TCP 和 UDP 的区别以及优缺点和使用场景?

    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。Tcp通过校验和,重传控制,序号标识,

    2024年02月11日
    浏览(26)
  • vue前端预览pdf并加水印、ofd文件,控制打印、下载、另存,vue-pdf的使用方法以及在开发中所踩过的坑合集

    根据公司的实际项目需求,要求实现对pdf和ofd文件的预览,并且需要限制用户是否可以下载、打印、另存pdf、ofd文件,如果该用户可以打印、下载需要控制每个用户的下载次数以及可打印的次数。正常的预览pdf很简单,直接调用浏览器的预览就可以而且功能也比较全,但是一

    2024年02月16日
    浏览(131)
  • vue中的Computed和watch区别即使用方法、场景

    在Vue.js, computed 是一个非常有用的属性,它允许声明计算属性,这些属性会根据其依赖的数据进行自动更新,而无需手动触发。 computed 属性常用于根据现有的响应式数据进行计算,以生成派生的数据,而这些数据的值会随着依赖数据的变化而自动更新。 计算属性的缓存:

    2024年02月10日
    浏览(33)
  • this.$set的正确使用

    我们在项目开发的过程中,经常会遇到这种情况:为data中的某一个对象添加一个属性 当我们点击按钮,为student添加一个age属性,看看视图层是否能够更新   在这里我们发现虽然这个对象身上已经有了该属性,但是视图层并没有更新该数据,是什么造成的呢?由于受JavaScri

    2024年02月05日
    浏览(23)
  • vue中created、watch、methods的区别,一般如何使用,在什么场景下使用

    在Vue中, created 、 watch 和 methods 是Vue实例中常用的三个选项。它们的作用和使用场景如下: created : 作用: created 是Vue实例生命周期钩子函数之一,在Vue实例创建完成后立即调用。在 created 钩子函数中,可以执行一些初始化逻辑、数据请求和监听事件等操作。 使用场景:一

    2024年02月11日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包