Vue3 第二节 Vue3的响应式
1.Vue3的响应式原理
2.ref函数和reactive函数的对比
3.setup注意点
一.Vue3的响应式原理
1.Vue2.x中的响应式原理
① 实现原理
- 对象类型:通过Object.defineProperty() 对属性的读取,修改进行拦截(数据劫持)
- 数组类型:通过重写更新数据的一系列方法来实现拦截,对数组变更方法进行包裹
② 存在问题
- 新增属性,删除属性,界面不会更新
- 直接通过下标修改数组,界面不会自动更新
2.Vue3.x的响应式原理
① 实现原理
- 通过Proxy(代理):拦截对象中任意属性的变化,包括对属性的读写,属性的添加,属性的删除
- 通过Reflect(反射):对源对象的属性进行操作
const p = new Proxy(person, {get (target, propName) {console.log('读取', target, propName)return Reflect.get(target, propName)},set (target, propName, value) {console.log('修改', value)return Reflect.set(target, propName, value)},deleteProperty (target, propName) {return Reflect.deleteProperty(target, propName)}})
二.ref函数和reactive函数的对比
① 从定义数据的角度
- ref用来定义:基本类型数据
- reactive用来定义:对象(数组)数据类型
- ref也可以用来定义对象(或数组)类型的数据,它内部会自动通过reactive转为代理对象
② 从原理角度对比
- ref通过Object.defineProperty()的get与set来实现响应式(数据劫持)
- reactive通过使用Proxy来实现响应式(数据劫持),并通过Reflect操作元对象内部的数据
③ 从使用角度对比
- ref定义的数据:操作数据需要.value,读取模板的时候模板中直接读取,不需要用.value
- reactive定义的数据,操作数据与读取数据均不需要.value
三.setup使用两个注意点
- setup执行的时机:在beforeCreate之前执行一次,this是undefined, setup中不能使用this
- setup的参数
① props:值为对象,包含组件外部传递过来,且组件内部声明接收了的属性


![]()
② context:上下文
- attrs:值为对象,包含组件外部传递过来,但没有在props配置中声明的属性,相当于this.$attrs
- slots:收到的插槽内容,相当于this.$slots
- emit:分发自定义事件的函数,相当于this.$emit
相关文章:
Vue3 第二节 Vue3的响应式
1.Vue3的响应式原理 2.ref函数和reactive函数的对比 3.setup注意点 一.Vue3的响应式原理 1.Vue2.x中的响应式原理 ① 实现原理 对象类型:通过Object.defineProperty() 对属性的读取,修改进行拦截(数据劫持)数组类型…...
通过easyui实现动态控制表格字段显示、导出表格数据
前言 学过layui前端框架的都知道,layui默认帮我们实现了控制表格字段显示以及数据的导出功能。 1、控制表格字段显示 2、数据导出 3、导出为pdf:导出按钮的右边那个按钮就是打印pdf的 那么,easyui要怎么实现这些功能呢?这篇文章就…...
JWT入门,jwt可以解密吗?
JWT 什么是 JWT JSON Web Token,通过数字签名的方式,以 JSON 对象为载体,在不同的服务终端之间安全地传输信息 官网:https://jwt.io/SDK: https://jwt.io/libraries (含Java和各种语言)Java SDK(上面的SDK链接得到): https://g…...
36.利用解fgoalattain 有约束多元变量多目标规划问题求解(matlab程序)
1.简述 多目标规划的一种求解方法是加权系数法,即为每一个目标赋值一个权系数,把多目标模型转化为一个单目标模型。MATLAB的fgoalattain()函数可以用于求解多目标规划。 基本语法 fgoalattain()函数的用法: x fgoalattain(fun,x0,goal,weig…...
EPPlus 读取和生成Excel
在项目中添加了EPPlus库的引用,你可以通过NuGet包管理器或手动将EPPlus库添加到项目中。同时,需要注意的是EPPlus库支持的是xlsx格式的Excel文件。 读取 使用EPPlus读取本地Excel文件的示例代码如下: using OfficeOpenXml;public void Rea…...
Java wait() notify() join()用法讲解
一、wait() 1. 源码: 实际调用本地方法 2. 作用 释放当前锁,并让当前线程进入等待状态;timeoutMillis为等待时间,单位毫秒,如果为0则表示无限等待下去;该方法使用前提是:当前执行线程必须持…...
新手注意事项-visual studio 来实现别踩白块儿
自己之前为了熟悉easyx练习过一个简单的项目,别踩白块儿,链接在这里,别踩白块儿,当时比较稚嫩,很多东西都不会,可以说是只知道最基本的语法,头文件都不知道,一个一个查资料弄懂的&am…...
【力扣】2810. 故障键盘 <模拟>
【力扣】2810. 故障键盘 你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。返回最终笔记本屏幕上输出的字…...
Docker desktop使用配置
1. 下载安装 https://www.docker.com/ 官网下载并安装doker desktop 2. 配置镜像 (1)首先去阿里云网站上进行注册:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors (2)注册完成后搜索:容…...
第一百二十一天学习记录:线性代数:矩阵乘法运算(宋浩板书)
在编程和学习数据结构的过程中,发现有些算法会用到矩阵和矩阵的乘法运算,因此先将这一个知识点学习一下。 矩阵和行列式的区别 各种矩阵的概念 矩阵运算 乘法☆ 总结三条不满足...
模拟实现消息队列项目(系列3) -- 服务器模块(硬盘管理)
目录 前言 1. 创建项目 2. 创建核心类 2.1 Exchange 2.2 MSQueue 2.3 Binding 2.4 Message 3. 数据库设计 3.1 SQLite 配置 3.2 Mapper层代码实现 3.2.1 创建表操作 3.2.2 交换机 队列 绑定的增加和删除 3.3 实现DataBaseManager 3.4 DataBaseManager单元测试 4.…...
【iOS】锁
线程安全 当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。简单来讲就是在同一时刻,对同一个数据操作的线程只有一个。而线程不安全,则是在同一时刻可以有多个线程对该数据进行访问,从而得…...
杰发科技(合肥)2021笔试题
笔试时间:2020.10.17 ,10:30-12:00。 岗位:Linux 驱动工程师。 题型:选择题8道,填空题10道,编程题4道。 杰发科技主要做汽车电子,由北京四维图新控股,对汽车电子感兴趣的有机会可以应聘试试。 选择题 1、128,4 #include<stdio.h> unsigned int getstrsiz…...
Java堆排序
目录 PriorityQueue自己实现 PriorityQueue public class PriorityQueueMain {public static void main(String[] args) {int[] temp {40, 2, 33, 26, 35, 8, 8, 26, 29, 2};PriorityQueue<Integer> priorityQueue new PriorityQueue<>();for (int i 0; i <…...
GitHub的基本使用教程
GitHub是一个基于web的版本控制和协作平台。它允许开发人员将他们的代码存储库存储在云中,并与其他人一起进行工作。GitHub还提供了各种工具和功能来帮助开发人员管理和组织他们的代码项目,包括拉出请求、问题跟踪、代码评论等等。此外,它托管…...
objectMapper.configure 方法的作用和使用
objectMapper.configure 方法是 Jackson 提供的一个用于配置 ObjectMapper 对象的方法。ObjectMapper 是 Jackson 库的核心类,用于将 Java 对象与 JSON 数据相互转换。 configure 方法的作用是设置 ObjectMapper 的配置选项,例如设置日期格式、设置序列…...
面试热题(x的平方根)
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 这道题虽然是简单题…...
食品溯源合约 -- 智能合约实例
前提 Roles: 实现对用户地址的角色权限管控,添加、删除角色。 Producer: 生产商角色管控。 ... FoodInfoItem: 食品信息管控。生产商、中间商、超市添加食品信息。 Trace:食品溯源合约,主要负责对以上几个合约的统筹协作。 Roles // SPDX-License-Identifier: MIT pragm…...
SAP系统中二代增强提供了4中增强函数的查找方法
1 Introduction The second enhancement is used widely by sap .We can set break-point in the function . The function is in the SMOD FG. 2 Detail SAP系统中二代增强提供了4中增强函数的查找方法: MODX_ALL_ACTIVE_MENUENTRIES (菜单增强) MODX_FUNCTION…...
RabbitMQ-SpringBoot2
1.依赖引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.配置文件 spring: rabbitmq: host: 192.168.2.17 port: 5672 usernam…...
快马AI一键生成:Mac系统OpenClaw自动化工具安装与原型验证脚本
今天在折腾一个自动化工具OpenClaw的安装,发现Mac系统下的配置过程有点繁琐,正好用InsCode(快马)平台快速生成了一个原型验证脚本,整个过程比想象中顺畅很多。记录下这个轻量级解决方案的实现思路,特别适合需要快速验证工具功能的…...
一文学习 工作流开发 BPMN、 Flowable
一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...
大模型开发避坑:彻底理清 Skill(技能)与 MCP(模型 上下文协议)的本质区别与协同
在目前的 AI 应用开发圈子里,各种新名词层出不穷:Skill(技能)、Plugin(插件)、Function Calling(函数调用)、Tool(工具)、MCP(模型上下文协议&…...
mT5分类增强版中文-base效果惊艳:同一输入生成‘正式/口语/幽默’三风格文本示例
mT5分类增强版中文-base效果惊艳:同一输入生成‘正式/口语/幽默’三风格文本示例 1. 模型介绍:零样本学习的文本增强利器 mT5分类增强版中文-base是一个基于mT5架构的文本增强模型,专门针对中文场景进行了深度优化。这个模型最大的特点是采…...
如何快速掌握Subtitle Edit:新手也能上手的完整实战指南
如何快速掌握Subtitle Edit:新手也能上手的完整实战指南 【免费下载链接】subtitleedit the subtitle editor :) 项目地址: https://gitcode.com/gh_mirrors/su/subtitleedit 你是不是经常遇到下载的字幕与视频不同步?或者想要为自制视频添加专业…...
Java实战:阿里云OSS文件操作工具类封装与优化
1. 阿里云OSS基础认知与Java集成准备 第一次接触阿里云OSS时,我完全被文档里那些专业术语搞懵了。后来才明白,它本质上就是个超级网盘,只不过比我们平时用的网盘更专业、更稳定。想象一下,你有个无限容量的保险箱,可以…...
保姆级教程:PX4 EKF调参实战,手把手教你搞定Q、R矩阵(附避坑指南)
PX4 EKF调参实战:从传感器噪声到Q/R矩阵优化的完整指南 当无人机在强风环境下突然出现位置漂移,或是穿越机在高速机动时姿态估计突然发散——这些场景背后往往隐藏着扩展卡尔曼滤波器(EKF)参数配置不当的问题。作为PX4飞控的核心状态估计算法,…...
基于yolov10的工地安全帽检测系统 有技术文档 能实现图像,视频和摄像实时检测 深度学习 python Django
一、系统涉及的技术 框架:pytorch 模型:yolo10n 编程语言:python 数据库:SQLite 界面:后端python Django,前端 Vue3 项目类型:目标检测 二、多模态检测能力 图像检测:支持用户…...
突破限制:3大核心功能让MediaCreationTool.bat成为Windows安装自由的终极解决方案
突破限制:3大核心功能让MediaCreationTool.bat成为Windows安装自由的终极解决方案 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/Media…...
Git 本地版本控制极简使用笔记(Qt 项目专用)
核心原则全程仅需掌握5 个核心命令,满足日常开发、版本记录、回滚修复的全部需求,无需复杂操作,适配传感器环筛管理平台项目一、基础准备(已完成,备查)1. 仓库初始化(仅执行 1 次)# …...
