vue2响应式 VS vue3响应式

news/2024/9/25 21:23:11/

Vue2响应式

存在问题:
新增属性,删除属性,界面不会更新。
直接通过下标修改数组界面不会自动更新。
在这里插入图片描述
在这里插入图片描述
Vue2使用object.defineProperty来劫持数据是否发生改变,如下:
在这里插入图片描述
在这里插入图片描述
能监测到获取和修改属性:
在这里插入图片描述
新增的属性没有get和set:
在这里插入图片描述
删除name属性:
在这里插入图片描述
综上,获取和修改一个属性可以捕获到,但是新增和删除属性是捕获不到的,所以使用 s e t 和 set和 setdelete方法才能响应。

Vue3实现响应式

  1. 如下代码,p = new Proxy()后,p是一个proxy对象,是person的一个代理对象,对p的修改会映射到person身上:
    在这里插入图片描述
    在这里插入图片描述
    上面代码只是说P是person的代理对象,p改变,person跟着改变,但是并没有做到响应式,也就是变化并没有捕获到。
  2. Vue3捕获响应:
    在这里插入图片描述
    结果如下:对对象的增删改查全部捕获到,并且映射到person中。
    其中set方法,既捕获新增又捕获修改。

在这里插入图片描述
3. 对上面代码进行优化,vue3中是使用Reflect来对数据进行修改。

在这里插入图片描述

综上,实现原理:
#通过proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写,属性的添加,属性的删除等。 通过Reflect(反射):对被代理对象(原对象)的属性进行操作。


http://www.ppmy.cn/news/1426659.html

相关文章

“手撕“三大特性之一的<继承>(上)

目录 一、为什么需要继承 二、什么是继承 三、继承怎么写 四、成员的访问 1.父类与子类的成员变量不同名 2.父类与子类的成员变量同名 3.父类与子类的成员方法不同名 4.父类与子类的成员方法同名 五、super关键字 一、为什么需要继承 先让我们看一段Java代码&#…

Spring AI ETL 流水线

先纠正 Spring AI 使用本地 Ollama Embeddings 中的一个错误,当启动 Ollama 之后,Windows会有托盘图标,此时已经启动了 Ollama 的服务,访问 Embedding 时不需要运行 ollama run gemma ,只有访问 chat 时才需要启动一个…

富文本插入图片的时候直接复制链接的风险点和解决方案

业务背景 最近由于项目需要开发了一个富文本的功能其中有一个小点是插入图片到富文本中, 插入的时候是可以直接复制图片的链接地址插入的我本来觉得没啥,但是感觉哪里不太对,于是开始了风险点评估,以及对应的解决方案 风险点评…

openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置

文章目录 openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置265.1安装openEuler操作系统265.2 修改操作系统内核PAGESIZE为64KB。265.3 关闭CPU中断的服务irqbalance openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置 本…

Dual-AMN论文阅读

Boosting the Speed of Entity Alignment 10: Dual Attention Matching Network with Normalized Hard Sample Mining 将实体对齐速度提高 10 倍:具有归一化硬样本挖掘的双重注意力匹配网络 ABSTRACT 寻找多源知识图谱(KG)中的等效实体是知识图谱集成的关键步骤&…

共享软件工厂:软件行业的“滴滴打车”模式

在数字化浪潮席卷全球的背景下,软件行业正面临着前所未有的挑战与机遇。传统软件开发模式由于需求变化快、交付周期长、人才流动性大、迭代升级困难等问题,已经难以满足市场快速变化的需求。在这个关键的时刻,共享软件工厂应运而生&#xff0…

【C++】哈希封装map与set

目录 前言: 一,底层哈希结构 1-1,迭代器的封装 1-2,哈希表的封装 二,unordered_map的封装 三,unordered_set的封装 前言: 上一篇文章说明了哈希结构,这一篇文章来说明如何使用…

【JavaEE多线程】线程安全、锁机制及线程间通信

目录 线程安全线程安全问题的原因 synchronized 关键字-监视器锁monitor locksynchronized的特性互斥刷新内存可重入 synchronized使用范例 volatilevolatile能保证内存可见性volatile不保证原子性synchronized 也能保证内存可见性 wait 和 notifywait()方法notify()方法notify…