iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue动态添加属性到data的实现
  • 291
分享到

Vue动态添加属性到data的实现

Vue动态添加属性Vue添加属性 2022-11-13 14:11:31 291人浏览 安东尼
摘要

目录一、场景例子二、原理分析三、解决方案一、场景例子 <body> <div id="app"> <p v-for="(valu

一、场景例子

<body>
    <div id="app">
        <p v-for="(value,key) in item" :key="key">
            {{value}}
        </p>
        <button @click="addProperty">动态添加新属性</button>
    </div>
</body>
</html>
<script>
    new Vue({
        el:'#app',
        data:{
            item:{
                oldProperty:"旧属性"
            }
        },
        methods: {
            addProperty(){
                this.item.newProperty = "新属性";
                console.log(this.item);
            }
        },
    })
</script>

效果:点击按钮后,输出的结果中有新添加的新属性,但是页面没有显示新属性。

二、原理分析

vue2使用Object.defineProperty实现数据响应式;

const obj = {}
Object.defineProperty(obj, 'foo', {
        get() {
            console.log(`get foo:${val}`);
            return val
        },
        set(newVal) {
            if (newVal !== val) {
                console.log(`set foo:${newVal}`);
                val = newVal
            }
        }
    })
}
  • 当访问foo属性,或者设置foo值的时候都能触发setter与getter;
  • 但是为obj添加新属性的时候,却无法触发事件属性的拦截
bj.bar = '新属性'

原因是一开始obj的foo属性被设成了响应式数据,而bar是后面新增的属性,并没有通过Object.defineProperty设置成响应式数据

三、解决方案

有三种解决方案:

  • Vue.set()
  • Object.assign()
  • $forcecUpdated()

常用的就是Vue.set(),语法为:Vue.set( target, propertyName/index, value )

<script>
    new Vue({
        el:'#app',
        data:{
            item:{
                oldProperty:"旧属性"
            }
        },
        methods: {
            addProperty(){
                Vue.set(this.item,"newProperty","新属性")
                console.log(this.item);
            }
        },
    })
</script>

到此这篇关于Vue动态添加属性到data的实现的文章就介绍到这了,更多相关Vue动态添加属性内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue动态添加属性到data的实现

本文链接: https://www.lsjlt.com/news/171895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue动态添加属性到data的实现
    目录一、场景例子二、原理分析三、解决方案一、场景例子 <body> <div id="app"> <p v-for="(valu...
    99+
    2022-11-13
    Vue 动态添加属性 Vue 添加属性
  • vue如何动态添加对象属性
    在vue中态添加对象属性的方法:1.使用this.$set(obj,key,value)方法添加;2.使用索引值添加;具体方法如下:使用this.$set(obj,key,value)方法对基本数据类型和对象动态添加属性this.$set(...
    99+
    2024-04-02
  • vue实现动态给data函数中的属性赋值
    目录vue动态给data函数中的属性赋值vue给data中的数据赋值报错问题背景分析解决方案vue动态给data函数中的属性赋值 1.首先创建一个监视器,用来监视相关的属性 2.当这...
    99+
    2024-04-02
  • 如何解决vue动态为数据添加新属性遇到的问题
    这篇文章主要介绍了如何解决vue动态为数据添加新属性遇到的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue为数据添加属性时遇到的坑,...
    99+
    2024-04-02
  • vue中怎么给对象动态添加属性和值
    vue中怎么给对象动态添加属性和值,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、背景介绍:在vue中请求接口中,一个请求方法可能对应后台两...
    99+
    2024-04-02
  • JAVA怎么动态给实体类添加属性
    在Java中,实体类是由属性和方法组成的对象。通常情况下,我们在定义实体类时会给出固定的属性。但是有时候,我们需要在运行时动态地给实...
    99+
    2023-09-26
    JAVA
  • Vue一个动态添加background-image的实现
    目录Vue一个动态添加background-imageVue踩坑background-image路径结合实际情况,处理方法如下扩展:图片格式(base64)总结Vue一个动态添加ba...
    99+
    2023-03-11
    Vue动态添加 Vue background-image Vue添加background-image
  • vue 动态添加el-input的实现逻辑
    目录一、效果图二、实现逻辑一、效果图 二、实现逻辑 将需要动态添加的表单项项的绑定值存为一个数组以循环的方式展示form表单点击`+`按钮触发事件,向数组中新加一个item点击`-...
    99+
    2024-04-02
  • vue怎么实现动态添加el-input
    本文小编为大家详细介绍“vue怎么实现动态添加el-input”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现动态添加el-input”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、效果图二、实现...
    99+
    2023-07-02
  • vue中向data添加新属性的三种方式小结
    目录向data添加新属性的三种方式原理分析三种方式vue组件 data等属性介绍向data添加新属性的三种方式 原理分析 首先在了解这三种方式之前,我觉的有必要说一下,为啥不能直接手...
    99+
    2024-04-02
  • Java为实体类动态添加属性的方法详解
    目录添加依赖代码测试可以给已有实体类动态的添加字段并返回新的实体对象,不影响原来的实体对象结构。 添加依赖 <dependency> ...
    99+
    2024-04-02
  • vue+elementui实现动态添加行/可编辑的table
    本文实例为大家分享了vue+elementui实现动态添加行、可编辑的table的具体代码,供大家参考,具体内容如下 HTMl代码块: <el-col :span="24"&g...
    99+
    2024-04-02
  • JAVA动态给实体类添加属性的方法是什么
    在Java中,实体类是指用于表示现实世界中的实体的类。一般情况下,实体类的属性是在类的定义中固定的,无法动态添加。然而,可以使用Ja...
    99+
    2023-10-18
    JAVA
  • java对象动态增加属性怎么实现
    在Java中,对象的属性通常是在编译时确定的,无法在运行时动态地增加属性。然而,可以通过使用Java的反射机制来实现动态增加属性的效...
    99+
    2023-10-12
    java
  • vue动态添加表单validateField验证功能实现
    vue动态添加表单validateField验证,代码如下所示: <template> <el-form ref="form" :model="form" ...
    99+
    2023-05-14
    vue动态添加表单 vue  validateField验证
  • RecyclerChart动态属性图标联动数据动态加载怎么实现
    本篇内容介绍了“RecyclerChart动态属性图标联动数据动态加载怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!图表联动类似于股...
    99+
    2023-07-05
  • vue实现动态列表尾部添加数据执行动画
    目录动态列表尾部添加数据执行动画先上动画动态数据使用wowjs显示动画1.通过npm安装2.在main.js中引入animate.css动态列表尾部添加数据执行动画 先上动画 动态...
    99+
    2024-04-02
  • AngularJS怎么实现动态添加Option
    这篇文章主要为大家展示了“AngularJS怎么实现动态添加Option”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AngularJS怎么实现动态添加Opti...
    99+
    2024-04-02
  • vue动态添加表单validateField验证功能如何实现
    今天小编给大家分享一下vue动态添加表单validateField验证功能如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-05
  • antd+vue实现动态验证循环属性表单的思路
    希望实现查询表单的某些属性可以循环验证必填项: 需求: 1.名称,对比项,备注必填,默认为一行,可增加多行 2.根据名称,动态请求对比项列表,名称变化时,清空该行当前选择的对比项 思...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作