Web前端 ---- 【Vue3】Proxy响应式原理

目录

前言

安装Vue3项目

安装

Proxy

语法格式


前言

从本文开始进入vue3的学习。本文介绍vue3中的响应式原理,相较于vue2中通过object.defineProperty(vue2中的响应式)来实现响应式,vue3中换成了Proxy来进行实现。

安装Vue3项目

相较于vue2通过vue-cli脚手架来创建项目,这里更推荐使用create-vue来创建vue3的项目。vue-cli是基于webpack来实现的,而create-vue是基于vite来实现的,相比之下,vite速度更快,体验感更好。

安装

npm init vue@latest

输入以上命令就会安装create-vue脚手架,同时会创建vue3工程

如果已经安装了create-vue脚手架,就会直接创建vue3工程

输入完成之后,创建Vue3工程名字

由于这里是初学,所以都选的是否,看各自需求

创建好vue3工程后输入以下命令

cd 刚才创建的vue3工程名字

npm install

npm run dev

注意:这里运行项目程序的命令是

npm run dev

使用vue-cli脚手架创建的项目是

npm run serve

Proxy

vue3中是使用Proxy代理来进行响应式处理的。vue2中是使用object.defineProperty进行的响应式处理。使用object.defineProperty进行响应式会产生一些问题,例如,当我们直接修改目标对象身上的属性时,是不会触发set数据劫持的,以及当我们删除某些属性时,也不会触发响应式。使用Proxy就可以解决这些问题。

语法格式

let userProxy = new Proxy(目标对象,{

        get(target,propertyName){

                return target[ propertyName ]

        },

        set(target,propertyName,value){

                target[ propertyName]=value

        },

        deleteProperty(target,propertyName){

                return delete target[ propertyName]

        }

})

其中,

target为目标对象

propertyName为目标对象身上的属性名,是一个字符串

当读取属性时触发get

当修改属性时或者增加属性时触发set

当删除属性时,触发deleteProperty

读取属性时,get触发

修改属性时,set触发

添加属性,触发set

删除属性,触发deleteProperty

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/343354.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chat-plus部署指南

目录 1.下载代码 2.启动 3.测试 1.下载代码 cd /optwget https://github.com/yangjian102621/chatgpt-plus/archive/refs/tags/v3.2.4.1.tar.gz 2.启动 cd /opt/chatgpt-plus-3.2.4.1/deploydocker-compose up -d 3.测试 管理员地址xxx:8080/admin 账号密码admin/admin1…

百度面经整理(2024最新)

百度 面经1 shiro的组件分布式一致性算法zookeeper那些能参与投票,leader能投票吗?netty零拷贝实现volatile,如何感知到变量变化的redis高可用http如何跨域?tcp如何长链接。http如何操作浏览器缓存。用过消息队列吗?…

二极管选型怎么选?常用参数要熟练~

同学们大家好,今天我们继续学习杨欣的《电子设计从零开始》,这本书从基本原理出发,知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例,可以说是全面系统地介绍了电子设计所需的知识…

[易语言]使用易语言部署工业级人脸检测模型

【框架地址】 https://github.com/ShiqiYu/libfacedetection 【算法介绍】 Libfacedetection是一个开源的计算机视觉库,主要用于实时的人脸检测。它利用深度学习技术,特别是卷积神经网络(CNN),实现了高精度的脸部定位…

红日靶场之stack远程桌面控制 个人学习)

我们首先打开webshell工具 然后切换到C盘的www的文件夹下面 然后我们打开MSF工具进行监听 模板 msfconsole 启动MSF工具 然后是 use exploit/multi/handler 使用漏洞辅助模块 set payload windows/meterpreter/reverse_tcp 这是利用漏洞tcp回弹模块 set lhost 192.168.52.…

Selenium自动化测试—设置元素等待

selenium中有三种时间等待: 强制等待:sleep隐式等待:implicitly_wait显示等待:WebDriverWait 1. sleep【文末有配套视频教程和免费的测试资料】 让程序暂停运行一定时间,等待时间到达后继续运行。 使用sleep&#…

SpringMVC文件上传(CommonsMultipartResolver)

以上传一个图片为例 添加依赖 <!--文件上传--> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version> </dependency> 配置文件上传解析器 <…

C++内存管理和简单模板

文章目录 目录 文章目录 前言 一.内存管理 1.new delete操作符 对内置类型 对自定义类型 2.operator new与operator delete函数 3.定位new 二.模板 1.函数模板 2.类模板 前言 C是一种通用编程语言&#xff0c;支持面向对象、过程性和泛型编程。在C中&#xff0c;内…

探索 hasOwnProperty:处理对象属性的关键(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

fo安方的个人、博客和专栏

&#x1f49d;&#x1f49d;各位领导好&#xff0c;欢迎光临&#x1f49d;&#x1f49d; ☁️☁️slogon&#xff1a;云想衣裳花想容&#xff0c;春风扶栏露华容☁️☁️ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;fo安方的博客&#x1f4a5;&#x1f4a5; &#x1f49e;…

GIS真的是天坑专业吗?

是&#xff0c;也不是。 首先说是&#xff0c;GIS到底坑在哪&#xff1f; 1、专业定位不清晰&#xff0c;具有很强的误导性 听过很多学生抱怨&#xff0c;关于GIS专业&#xff0c;大家觉得最坑的地方&#xff0c;在于一开始在选专业的时候&#xff0c;以为这个专业跟计算机专…

[Kubernetes]5. k8s集群StatefulSet详解,以及数据持久化(SC PV PVC)

前面通过deployment结合service来部署无状态的应用,下面来讲解通过satefulSet结合service来部署有状态的应用 一.StatefulSet详解 1.有状态和无状态区别 无状态: 无状态(stateless)、牲畜(cattle)、无名(nameless)、可丢弃(disposable) 有状态: 有状态(stateful)、宠物(pet)…