【vue3】vue3.5

devtools/2024/11/13 10:26:52/

vue3.5是9.1发布的,还挺热乎的,赶快学习起来!!!

组件属性结构解析赋值

组件属性结构解析赋值,高度提高开发体验,这个特性曾经在vue3.3提出过,然后3.4废弃,终于3.5稳定了。下面一起来看看怎么用的吧。

<script setup lang="ts">javascript">import { watch } from 'vue';// 自定义属性结构解析,可在结构解析时赋默认值const { count = 0, name = '张三' } = defineProps<{count: number;name: string;}>();// 监听自定义属性改变watch(() => count,(value) => {console.log('count', value);});
</script><template><div>{{ count }}</div><div>{{ name }}</div>
</template>

内置组件teleport优化

Teleport 可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去,但有一个局限,传送元素只能在目标元素后面,vue3.5给 Teleport 加了一个defer属性,可以忽略这个顺序。

<template>// 这里'传送'成功<div id="box1"></div><teleport to="#box1"><div>我系渣渣辉box1</div></teleport><teleport to="#box2"><div>我系渣渣辉box2</div></teleport>// 这里'传送'失败<div id="box2"></div><Teleport defer to="#box3"><div>我系渣渣辉box3</div></Teleport>// 这里'传送'成功<div id="box3"></div>
</template>

useTemplateRef

返回一个浅层 ref,其值将与模板中的具有匹配 ref attribute 的元素或组件同步。

<script setup lang="ts">javascript">import { ref, useTemplateRef } from 'vue';import Comp from './Comp.vue';// beforeconst domDiv = ref<HTMLDivElement>();// afterconst div = useTemplateRef('domDiv');const divInnerText = () => {div.value!.innerText = '张三6666';};// before// const comp = ref<HTMLDivElement>();// afterconst useTComp = useTemplateRef<{addNum: () => void;}>('comp');const addCompNum = () => {useTComp.value!.addNum();// comp.value.addNum();};
</script><template><div ref="domDiv"></div><button @click="divInnerText">innerText</button><Comp ref="comp"></Comp><button @click="addCompNum">comp num++</button>
</template>

onWatcherCleanup

注册一个清理函数,在当前侦听器即将重新运行时执行。只能在 watchEffect 作用函数或 watch 回调函数的同步执行期间调用 (即不能在异步函数的 await 语句之后调用)。这个让我想起了防抖,当然可以作为防抖来使用。

<script setup lang="ts">javascript">import { ref, watch, onWatcherCleanup } from 'vue';const num = ref(0);watch(() => num.value,(value) => {const timer = setTimeout(() => {// 按钮被点击停下后1秒后打印,一直点击则不触发,输入框同理console.log(value, '改变发生请求');}, 1000);onWatcherCleanup(() => {clearTimeout(timer);});});
</script><template><button @click="num++">num++</button>
</template>

http://www.ppmy.cn/devtools/114530.html

相关文章

各种文件格式对应的ContentType,适用于文件接收与上传下载等场景...

Content-Type&#xff0c;即内容类型&#xff0c;是HTTP协议中的一个头部字段&#xff0c;用于指示发送到接收端&#xff08;通常是Web服务器或Web客户端&#xff0c;如浏览器&#xff09;的实体主体的媒体类型。它告诉浏览器或相关设备如何显示或处理加载的数据。Content-Type…

操作数组不越界的妙法C++

缘由https://bbs.csdn.net/topics/397090550 这个算法就不会越界&#xff0c;其关键在于-1之妙。string aa "123456789"; int a aa.size(), x 0;while (a)cout << aa[a-1] << endl,--a;while (x < a)cout << aa[x] << endl,x; void …

小明,谈谈你对Vue nextTick的理解

一、nextTick 的实现细节 在 Vue 中&#xff0c;nextTick 是一个重要的异步操作工具&#xff0c;用于在 DOM 更新完成后执行回调函数。其实现依赖于微任务机制&#xff0c;以确保操作在下一个“事件循环”中执行。以下是 nextTick 的具体实现过程&#xff1a; 任务队列&#xf…

神经网络 归一化层

为什么要进行网络归一化层&#xff1f; 神经网络训练过程中&#xff0c;当网络层数较多的时候&#xff0c;每一轮训练每个网络层的参数都会发生变化&#xff0c;那么网络层参数变化会有什么影响呢&#xff1f; 1. 向网络中输入相同分布的样本时&#xff0c;由于每一层网络的参…

自建数据库VS云数据库:从《中国数据库前世今生》看未来数据管理的抉择

自建数据库VS云数据库&#xff1a;从《中国数据库前世今生》看未来数据管理的抉择 在数字化时代的滚滚洪流中&#xff0c;数据库作为核心数据管理工具&#xff0c;始终扮演着至关重要的角色。最近观看了纪录片《中国数据库前世今生》&#xff0c;让我对数据库技术的发展有了更…

FreeRtos-重要概念

1、任务优先级和中断优先级的区别 中断是MCU的硬件特性&#xff0c;由硬件事件或软件信号引起中断&#xff0c;运行哪个ISR是由硬件决定的。中断的优先级数字越低表示优先级别越高&#xff0c;所以中断的最高优先级为0 FreeRTOS的任务是一个纯软件的概念&#xff0c;与硬件系统…

十.在vue中,发送axios请求应该放在created里还是mounted里?详解

在vue中&#xff0c;发送axios请求应该放在created里还是mounted里&#xff1f;详解 在回答这个问题之前&#xff0c;我们需要知道vue的生命周期钩子顺序&#xff1a;beforecreated&#xff08;组件创建前&#xff0c;dom元素、data都为undefined&#xff09; created&#xf…

Java ERP系统源码深度解析:Spring Cloud Alibaba和Spring Boot的微服务实战

在当今数字化时代&#xff0c;企业对高效、稳定且易于扩展的管理系统的需求日益增长。为了满足这一需求&#xff0c;我们精心打造了一款基于Java技术的ERP&#xff08;Enterprise Resource Planning&#xff09;管理系统。该系统充分利用了Spring Cloud Alibaba、Spring Boot、…