首页 > 其他分享 >Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题 ?

Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题 ?

时间:2022-11-11 19:48:48浏览次数:51  
标签:Vue 对象 vm 响应 set 属性

Vue 提供了 Vue.set (object, propertyName, value) / vm.$set (object, propertyName, value) 来实现为对象添加响应式属性。

vm.$set 的实现原理是:

如果目标是数组,直接使用数组的 splice 方法触发相应式;

如果目标是对象,会先判读属性是否存在、对象是否是响应式,最终如果要对属性进行响应式处理,则是通过调用 defineReactive 方法进行响应式处理( defineReactive 方法就是 Vue 在初始化对象时,给对象属性采用 Object.defineProperty 动态添加 getter 和 setter 的功能所调用的方法)

标签:Vue,对象,vm,响应,set,属性
From: https://www.cnblogs.com/zhulongxu/p/16881538.html

相关文章

  • space 动态布局算法(vue3-ts、setup)
    动态布局组件演示效果<template><ulclass="space_ulflex-row":style="{'padding-top':`${hs}px`,'padding-left':`${ws}px`}"......
  • Vue3中的新的内置组件
    在vue2中的内置组件:动态路由中的component:作用:动态显示路由的挂载点,使用is属性动态显示组件;keep-alive:作用:使被包裹的组件保留状态,避免被重新......
  • 构造器注入和setter依赖注入,那种方式更好
    每种方式都有它的缺点和优点。构造器注入保证所有的注入都被初始化,但是setter注入提供更好的灵活性来设置可选依赖。如果使用XML来描述依赖,Setter注入的可读写会更强。经验......
  • parceljs 2.8 整合 vue 及解决其他 bug
    问题vue2打包报错https://blog.csdn.net/C_ZhangSir/article/details/100989902解决:引入importVuefrom'vue/dist/vue';parcel中文路径导致打包出错https://blo......
  • vue-codemirror 代码编辑器
    codemirror是一个非常强大的代码编辑器插件,但官方并没有提供vue的支持版本,不过跟vue集成的步骤并不复杂,以下是具体实现更多精彩更多技术博客,请移步IT人才终生实训......
  • vue_01_函数式组件
    函数式组件-全局弹窗组件函数式组件定义1.在template上写上functional2.在exportdefault{}中设置functional为true//方式一<templatefunctional><temp......
  • KVM/QEMU(virt-manager)使用iso镜像安装macOS bigsur 11.4
    参考:https://blog.csdn.net/u012332816/article/details/1221868991.背景本人没有mac电脑,但是需要在macOS上做一些事情,原来我在VMWareWorkstations和VirtualBox......
  • JVM加载class文件的原理机制
    JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。由于Java的跨平台性,经过......
  • HashSet和CopyOnWriteArraySet
    参考https://www.jianshu.com/p/f55bf8a8520e前言这篇文章的目的如下:HashSet是如何保证元素的不重复和无序HashSet的增删(改查?)原理CopyOnWriteArraySet支持并发的原......
  • K8s部署,基于VMware+centOS7.9
    镜像来源于阿里云的centos镜像,安装VMware过程省略搭建一个master节点,三个node节点。配置都是2c8g安装前准备所有的节点都需要进行此操作1:所有节点禁止防火墙systemctl......