当前位置: 首页 > news >正文

【vue3】vue3.5

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

组件属性结构解析赋值

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

<script setup lang="ts">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">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">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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux vi常用命令
  • Android Tools | 如何使用Draw.io助力Android开发:从UI设计到流程优化
  • 前端项目代码开发规范及工具配置
  • Leetcode 416. 分割等和子集(Medium)
  • 鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
  • 人工智能安全治理新篇章:《2024人工智能安全治理框架1.0版》深度解读@附20页PDF文件下载
  • MATLAB统计和机器学习工具箱:数据分析与建模的利器
  • PyQGIS开发 2 Qt开发入门
  • Dirsearch在linux安装与运行
  • JavaWeb---纯小白笔记01:JavaWeb概述和Tomcat安装
  • JavaWEB概述
  • 【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21
  • cmake--get_filename_component
  • 常见的HTTP请求头和示例说明
  • 96 kHz、24bit 立体声音频ADC芯片GC5358描述
  • 自己简单写的 事件订阅机制
  • 【node学习】协程
  • FineReport中如何实现自动滚屏效果
  • github指令
  • laravel with 查询列表限制条数
  • MySQL-事务管理(基础)
  • Objective-C 中关联引用的概念
  • rabbitmq延迟消息示例
  • vue总结
  • Yii源码解读-服务定位器(Service Locator)
  • 闭包--闭包作用之保存(一)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 给github项目添加CI badge
  • 前嗅ForeSpider中数据浏览界面介绍
  • 我看到的前端
  • 正则表达式小结
  • Prometheus VS InfluxDB
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​configparser --- 配置文件解析器​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (六)DockerCompose安装与配置
  • (十一)图像的罗伯特梯度锐化
  • (循环依赖问题)学习spring的第九天
  • (一)为什么要选择C++
  • (原創) 物件導向與老子思想 (OO)
  • .net 4.0发布后不能正常显示图片问题
  • .net Application的目录
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?