首页 > 其他分享 >谈谈对Object.defineProperty的理解

谈谈对Object.defineProperty的理解

时间:2023-08-02 12:13:51浏览次数:73  
标签:Vue 指向 Object 地址 谈谈 defineProperty 页面

在Vue2实现数据和页面的绑定和双向绑定使用的就是Object.defineProperty方法,然后看到Vue-Router源码的时候发现了一个有趣的事情.就是:
通过代理B得到了A对象,其实是相当于B和A其实都指向了同一个地址值,我们在使用Vue的时候去改变或者拿取值一直都是通过A去拿的,在Vue里面他代理两次,这就意味着我们永远都没办法去拿到最最最一开始的那个值,因为他自己代理他自己.拿不到最一开始的那个值了.这就意味着我们在Vue里面所有的拿或取都是通过A对象进行的.如果B对象一下子整体被改变了,A是不会发生变化的.虽然B不指向原来的地址了,但是还有A去指向这个地址,所以这个地址不会别回收.
这个问题是在看Vue-Router源码的时候调用了Vue.util.defineReactive()方法时候,页面不实时刷新发现的.在跳转新的页面的时候,虽然被代理的值变了,但是吧页面没有进行刷新,原因就是像上面所说的那样.B的指向改变了但是A还是指向原来的所以页面不会刷新,解决方法就是在B改变的同时将A里面的内容也一起进行修改

标签:Vue,指向,Object,地址,谈谈,defineProperty,页面
From: https://www.cnblogs.com/yourgrandfather/p/17600309.html

相关文章

  • 谈谈企业进行税务风险管理的必要性
    税务风险是指企业在税务管理中,由于涉税行为未能正确有效地遵守税法规定,而导致企业出现经济损失以及企业形象受损的可能性。企业税务风险的来源主要有两个方面:1.企业的纳税行为不符合税收法律法规的规定或对相关的税务政策未能全面理解,应纳税而未纳税、少纳税,从而面临补税、罚款、......
  • 浅谈-BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(Object targe
    BeanWrapper是SpringFramework中的一个接口,它提供了一种方便的方式来访问Java对象的属性,并允许对属性进行读取和设置操作。PropertyAccessorFactory.forBeanPropertyAccess(this)是一个工厂方法,用于创建一个BeanWrapper对象,以便访问指定的Java对象的属性。举个例子来......
  • 粒博讯谈谈如何在网上赚钱,下班兼职赚钱,这或许有适合你的
    网上赚钱,简称“网赚”。“网赚”主要是指利用计算机、服务器等设备,通过互联网上的各种信息差,从互联网上赚钱的一种方式。兼职赚钱,简单点说就是,你有一份自己的工作是正职,除此之外你还可以再找一份别的工作作为副职,就是工作的同时,兼作另一份工作,叫兼职。近年来,随着互联网的飞速发......
  • python ImportError: libGL.so.1: cannot open shared object file: No such file or
    前言python报错pythonImportError:libGL.so.1:cannotopensharedobjectfile:Nosuchfileordirectory这个错误通常表示你的Python程序需要使用OpenGL库,但是该库未安装或未正确配置。解决在LinuxUbuntu系统中,安装OpenGL库:sudoapt-getinstalllibgl1-mesa......
  • Java面试题 P34:数据库篇:MySql篇-MySql优化-谈谈你对sql的优化经验?
           ......
  • ubuntu系统conda下运行pytorch报错:ImportError: libopenblas.so.0: cannot open share
    如题:ubuntu系统conda下运行pytorch报错:ImportError:libopenblas.so.0:cannotopensharedobjectfile   网上找了一些资料,基本都是自己下载openblas源码进行编译,不过突然之间相当conda环境提供一定的编译好的lib环境,使用conda命令既可安装,于是按照这个思路再进行搜索......
  • 测试工作9年,谈谈我的经历!
    1、我是谁,为什么想来说说?大家好,我是2021年全栈测试开发培训(第2期)的学员,最近周老师在进行第4期招生,我主动找到周老师想来个现身说法,希望能帮助老师招生,周老师自己都说你这么卖力给我宣传,很有托的嫌疑。这里我澄清一下,周老师可没有给我什么招生回扣,哈哈,但是我为什么做这事呢?其实很......
  • Unity之 GameObject.Find()路径正确却找不到物体
    有一个需求,需要用代码找到一个GameObject并将其取消激活。我是这么写的:GameObject.Find("mainCanvas").SetActive(false);但你运行后就会发现它报错;而报错的内容是找不到物体。反复核实路径正确,且物体确实是激活状态后我对这个代码的报错感到很不解。直到我把代码改成了:v......
  • error while loading shared libraries: libxml2.so.2: cannot open shared object fi
    参考:https://blog.csdn.net/qq_39779233/article/details/128215517  ============================================   errorwhileloadingsharedlibraries:libxml2.so.2:cannotopensharedobjectfile解决方法  解决方法:sudoapt-getinstalllibxml......
  • elementUI 日期控件报错 TypeError: dateObject.getTime is not a function
    <el-form-itemlabel="日期"prop="date"><el-time-pickerv-model="form.date"type="date"placeholder="选择时间"style="width:100%;"></el-time-picker></el-form-item>date:[......