Vue学习笔记(小满zs)

本文章记录一下我的学习笔记,供复习参考。🏆
向大佬学习!!!
⭐小满zs

Nodejs

Nodejs 三层组成 libuv(处理事件循环、I/O操作) 第三方库(处理HTTP等) V8引擎(编译js代码)

Vite

vite是用到了一个软链接(npm run dev 启动的时候)

setup语法糖

不使用setup语法糖,就得把定义的内容return 出去 vue3都出了哪些语法糖?

vue中的指令:

v-text
v-html
v-if v-else v-else-if 如果为false,就会变成一个被注释掉的节点 v-show
v-on(事件绑定) 事件冒泡 阻止冒泡事件 @click.stop
v-bind(属性绑定)
v-model 要配合使用ref和reactive
v-for(遍历使用)
性能优化的 v-once只渲染一次 v-memo中的条件成立可以跳过渲染

diff算法

为什么去操作虚拟dom,而不操作真实dom。
diff算法
无key:
1.patch的时候会替换节点
2.新增
3.删除
有key:
1.前序对比算法 判断元素的type和key (和vue2的区别,头和头,尾和尾,不再交叉比较)
2.尾序对比算法
3.新节点如果多出,就挂载
4.旧节点如果多出来就卸载
5.特殊情况乱序(乱序位移)最长递增子序列

Ref

修改或者取值要加上.value
ref深层次的
shallowRef是浅层次的,.value后面的属性不变化
二者不能混用,会造成视图的更新
triggerRef
customRef(自定义ref) set get方法收集依赖,触发依赖更新

ref获取dom元素

<div ref="node"> 我要获取你</div>
//typescript
const node = ref<HTMLDivElement>();
console.log(node.value?.innerText)

Reactive

只接受引用类型的参数
不需要加.value
tip:@click.prevent可以组织form默认的提交行为
reactive创建的是一个proxy代理的对象,不能直接对它赋值
解决方案(
1.如果是对于数组的话,不直接赋值,而是使用数组的方法,push等等,注意可以解构赋值
2.将reactive改成对象,其中的一个属性是数组

readonly

const count = reactive({name:"zhangsan"})
//变成只读属性
const read = readonly(count)

shallowReactive 浅层次的(只到第一个属性的位置)

和shallowRef一样,和reactive同时使用的时候会收到影响

toRef、toRefs和 toRaw

toRef

toRef只能修改响应式对象的值
适用于对reactive对象进行解构赋值

toRefs

相当于toRef()的复数

//手写实现
const toRefs = <T extends object>(object:T) =>{
const map:any = {}
for(let key in object){
map[key] = toRef(object,key)
}
return map
} //使用
let {name,age} = toRefs(person)

在这里插入图片描述

toRaw

将对象脱离响应式
在这里插入图片描述

响应式原理

vue2使用的是Object.defineProperty
vue3使用的是Proxy

reactive实现

在这里插入图片描述

effect track trigger实现

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Windows10系统下mysql5.6的安装步骤

1.下载mysql 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 在这里我们下载zip的包 2.解压mysql包到指定目录 3. 添加my.ini文件 # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configurat…

【欧美高端NFT链游--大嘴怪/小黄人】链游

#游戏#链游 呆萌的小黄人出现在大嘴怪的地盘上会发生什么有趣的事情呢?#动画#游戏#小黄人 大嘴怪与小黑人之间起了冲突&#xff0c;大嘴怪爆发了&#xff0c;他决定要给小黑人们一点颜色瞧瞧&#xff0c;用自己的拳头&#xff0c;以及&#xff1f;?嘴巴&#xff01;大嘴怪有…

视频号的视频,一键就下载了,方法全在这儿了!

居然还有人不知道&#xff1a;视频号里面的视频是没有地址的&#xff0c;只能有微信自带的浏览器中打开。 所以很多人在视频号找到想要的素材&#xff0c;却无法下载&#xff0c;表示很苦恼。 几天每天都有人群里求助&#xff1a;“求好心人帮我下载一下这个视频&#xff01;…

漏洞挖掘 | 记某证书站任意账号接管漏洞

下文中所述漏洞已修复 在前段时间的漏洞挖掘中&#xff0c;上了某证书站&#xff0c;打点的一处逻辑漏洞 访问某一站点&#xff0c;发现了一处登录页 点击登录按钮之后&#xff0c;发现该站点大概率是自写站点&#xff0c;存在逻辑漏洞的可能性大大增大&#xff0c;利用前期信…

产品软文应该怎么写,纯干货

产品软文是把一款产品的卖点很含蓄地表达在文章里面&#xff0c;通过特定的方式让这些枯燥的说明变得亲近人&#xff0c;以此传达一种价值观念&#xff0c;从而让人们对它产生一定的认知&#xff0c;能够潜移默化的感染着客户&#xff0c;可以提高产品和品牌的可见性和知名度。…

typora 两边太宽,设置宽度

步骤&#xff1a; 查看目前使用主题类型 文件 —> 偏好设置 —> 外观 —> 打开主题文件夹 修改对应的主题&#xff1a;max-width

ubuntu笔记本X86安装nomachine客户端

资源下载: 链接: link 一、首先下载文件 nomachine_8.2.3_4_x86_64.tar.gz到桌面。 二、打开终端,依次输入 进入root模式,需要输入密码,密码不可见。 sudu su复制nomachine_8.2.3_4_x86_64.tar.gz粘贴到/usr目录: cp -r nomachine_8.2.3_4_x86_64.tar.gz /usr进入

【后端开发实习】用MongoDB实现仓库管理的出库入库实战

用MongoDB实现仓库管理的出库入库 MongoDB什么是MongoDBMongoDB安装以及开始运行配置启动以及mongoshmongodb的基础使用命令启动和使用MongoDB服务数据库操作集合操作文档操作 项目部署在数据库中创建一张商品信息表提供信息表的增删改查操作接口 MongoDB 什么是MongoDB Mong…

‘wget‘ 不是内部或外部命令,也不是可运行的程序

在Windows环境下创建了虚拟环境并安装了wget包&#xff0c;但在使用该命令的时候仍然报错&#xff0c;‘wget’ 不是内部或外部命令,也不是可运行的程序 解决方案&#xff1a; 去官网下载对应位数的.exe文件&#xff0c;将其放在C:\Windows\System32目录下即可, 别下错版本&a…

C语言-预处理详解

文章目录 &#x1f3af;引言&#x1f453;预处理详解1.预定义符号1.1 __FILE__1.2 __LINE__1.3 __DATE__1.4 __TIME__1.5 __STDC__ 2.#define定义常量2.1 定义数值常量2.2 定义字符串常量 3.#define中使用参数3.1**使用示例**3.2注意事项 4.宏替换的规则5.宏函数和函数的对比5.…

windows远程连接virtualbox的ubuntu问题

一.安装vritualbox ubuntu&#xff0c;18、22版本比较稳定 1.推荐使用ubuntu22版本 2.ubuntu24对内存要求较高至少4G&#xff0c;时不时会死机&#xff0c;安装老是崩溃&#xff0c;恢复不了&#xff0c;如果电脑性能强悍那可以尝试。 3.ubuntu18 对vscode最高只能支持1.85.…

Spring中的工厂模式详解及应用示例

1. Spring中的BeanFactory BeanFactory是一个接口&#xff0c;表示它是一个工厂&#xff0c;负责生产和管理bean。在Spring中&#xff0c;BeanFactory是IOC容器的核心接口&#xff0c;定义了管理Bean的通用方法&#xff0c;如 getBean 和 containsBean。 BeanFactory与IOC容器…

海外视频媒体发布/发稿:如何在国外媒体以视频的形式宣发

1. 背景介绍 在如今数字化时代&#xff0c;每个国家都拥有着各自的视频媒体平台&#xff0c;而主流媒体也都纷纷加入了视频发布的行列。视频媒体的宣发形式主要包括油管Youtube等视频分享平台&#xff0c;以及图文配合的发布方式。通过在视频中夹带链接&#xff0c;媒体可以以…

C++ 宏和内联、范围for、nullptr

C 宏函数和内联函数、范围for、nullptr 宏函数和内联函数 ​ 函数重载中提到过&#xff0c;一个程序编译需要经过四个阶段&#xff0c;第一个阶段预处理中有一个操作是宏替换。由于是替换&#xff0c;所以宏不建立栈帧&#xff0c;且没有数据类型的限制&#xff0c;能够提高我…

CCSI: 数据无关类别增量学习的持续类特定印象| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 CCSI: Continual Class-Specific Impression for data-free class incremental learning CCSI: 数据无关类别增量学习的持续类特定印象 01 文献速递介绍 当前用于医学影像分类任务的深度学习模型表现出令人鼓舞的性能。这些模型大多数需要在训练之前收集所有的…

element plus 实现跨页面+跨tab栏多选

文章目录 element plus 层面数据层面 菜鸟好久没写博客了&#xff0c;主要是没遇见什么很难的问题&#xff0c;今天碰见了一个没有思路的问题&#xff0c;解决后立马来和大家伙分享了&#xff01; 菜鸟今天要实现一个需求&#xff0c;就是&#xff1a;实现跨页面跨 tab栏 多选…

解锁算力新极限,Xilinx UltraScale+赋能的高性能低延时FPGA加速卡

01、产品概述 AiHPC-V9P 是一款基于 AMD Virtex UltraScale FPGA VU9P 的 PCIe Gen3.0 x16 接口智能网卡&#xff0c;具有最大2*200GbE /或者16*10GbE(典型应用&#xff09;接入容量的高性能低延时智能网卡。 对外接口支持两组QSFP-DD 最高25Gb/s x8Lane 光口接入&#xf…

《梦醒蝶飞:释放Excel函数与公式的力量》10.4 IMREAL函数

第四节 10.4 IMREAL函数 10.4.1 函数简介 IMREAL函数是Excel中的一个工程函数&#xff0c;用于提取复数的实部。在复数运算中&#xff0c;实部是复数的一部分&#xff0c;表示没有虚部参与的部分。IMREAL函数提供了一个简单的方法来获取复数的实部&#xff0c;便于进一步计算…

Docker 使用基础(2)—镜像

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️&#x1f49f;──────── 4:20 &#x1f504; ◀️ ⏸ …

linux下安装cutecom串口助手;centos安装cutecom串口助手;rpm安装包安装cutecom串口助手

在支持apt-get的系统下安装 在终端命令行中输入&#xff1a; sudo apt-get install cutecom 安装好后输入 sudo cutecom 就可以了 关于如何使用&#xff0c;可以看这个https://www.cnblogs.com/xingboy/p/14388610.html 如果你的电脑不支持apt-get。 那我们就通过安装包…