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

vue3.5新特性整理

本文章介绍vue3.5更新的几个新特性

1.vue中watch中深度监听更新的层级

在之前deep 属性是一个boolean值 我们要监听对象的变化需要使用deep: true 在vue3.5之后 deep 也可以是一个number 表示对象要监听的层级数量 这个功能还是比较实用的 因为层级过深的时候我们可能需要监听数据所在层级没有那么什么就不需要全部监听 可以优化性能

<template><div><button @click="change">change</button></div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue'
let obj = ref({a: {n1: 0,b: {n2: 0,c: {n3: 0,d: {n4: 0,e: {n5: 0}}}}}
})
watch(obj, (val)=> {console.log(val)
}, {deep: 2
})const change = () => {obj.value.a = {q: 0}
}
</script>

在 vue3.4 中watch 配置中还新增一个once 属性 只监听一次数据变化

watch(obj, (val)=> {console.log(val)
}, {deep: 2,once: true
})

2.vue中之前响应式数据的定义和获取组件的示例都是用 ref 这个函数定义 vue3.5之后引入新的定义获取ref的函数 useTemplateRef

基本使用

    之前的使用方式const inputDom = ref(null)<input value="" ref="inputDom" />获取dominputDom.value.focus()3.5新增<template><div><input value="" ref="testRef" /><button @click="onHandler">获取焦点</button></div></template><script setup lang="ts">import { useTemplateRef } from 'vue'const inputRef = useTemplateRef('testRef')const onHandler = () => {inputRef.value.focus()}</script>

3.Teleport 传送组件

Teleport 组件新增一个 defer 之前传送组件只能传送到 定义传送组件之前已经存在dom里面 现在新增这个defer属性 可以传送到 定义在传送组件后面的dom中

TestTeleport.vaue
<template><div ><Teleport defer  to="#demo_1" ><div >teleport test </div></Teleport><!-- 加上defer 属性可以将Teleport 组件放到demo_1 结构下面 --><div id="demo_1"></div></div>
</template>Home.vue
<template><main><!-- 组件渲染之前已经存在dom结构 --><div id='test'></div><TeleportDemo /></main>
</template>

4.props 3.5之后新增一个比较好用的功能 对props解构

之前对 props 进行结构不能实现vue的响应式更新
并且对props 赋默认值需要使用 withDefaults 包裹有一点点麻烦 如果要想实现对props 结构需要使用 toRef/ toRefs

TestProps.vue
<template><div>test props<p>msg: {{ msg }}</p><p>count: {{ count }}</p></div>
</template>
<script setup lang="ts" >
import { watch } from "vue"const { msg, count } = defineProps<{msg: string,count: number
}>()watch(()=> count, (val)=> {console.log(val)
})</script>Home.vue<template><main><TestProps  :msg="msg" :count="count" /><button @click="onTest">test</button></main>
</template>
<script setup lang="ts">
import TestProps from '../components/TestProps.vue'
import { ref } from 'vue'
let msg = ref<string>('21323123')
let count = ref<number>(1)
function onTest() {count.value ++
}
</script>

5. onWatcherCleanup 新增api

这个api 也是优化watch 监听
如果要监听的属性变化很快而且我们在处理变化的之后的逻辑比较复杂 会很影响性能 之前处理这种操作可以使用防抖函数 现在vue 给我们提供了一种解决方法

    <template><div>{{ num }}<button @click="onTest">+1</button></div></template><script setup lang='ts'>import {ref, watch, onWatcherCleanup } from 'vue'let num = ref<number>(0)watch(num, (val) => {let timer = setTimeout(()=> {console.log(val)}, 1000) onWatcherCleanup(()=> {clearTimeout(timer)})})const onTest = () => {num.value ++}</script> 

注意 如果使用setTimeout测试间隔时间不能小于200ms 如果小于200毫秒 setTimeout 中的打印语句还是会执行的

以上就是我对vue3.5 更新的新特性的整理 如有错误欢迎指出

相关文章:

vue3.5新特性整理

本文章介绍vue3.5更新的几个新特性 1.vue中watch中深度监听更新的层级 在之前deep 属性是一个boolean值 我们要监听对象的变化需要使用deep: true 在vue3.5之后 deep 也可以是一个number 表示对象要监听的层级数量 这个功能还是比较实用的 因为层级过深的时候我们可能需要监听…...

RK3588 系列之3—rknn使用过程中遇到的bug

RK3588 系列之3—rknn使用过程中遇到的bug 1.librockchip_mpp.so: file format not recognized&#xff1b; treating as linker scrip2.Could not find a package configuration file provided by "OpenCV" with any of the following names参考文献 1.librockchip_…...

Java中的强引用、软引用、弱引用和虚引用于JVM的垃圾回收机制

参考资料 https://juejin.cn/post/7123853933801373733 在 Java 中&#xff0c;引用类型分为四种&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;和虚引用&#xf…...

网络协议的基础知识

前言 本文将详细介绍IP地址、端口号、协议、协议分层、封装、分用、客户端、服务器、请求、响应以及两台主机之间的网络通信流程等网络原理知识。 一、IP 地址 概念 IP地址主要用于标识网络中的主机和其他网络设备&#xff08;如路由器&#xff09;的位置。 类似于快递中的…...

Java高级Day37-UDP网络编程

109.netstat指令 netstat -an 可以查看当前主机网络情况&#xff0c;包括端口监听情况和网络连接情况 netstat -an|more 可以分页显示 要求在dos控制台下执行 说明&#xff1a; LISTENING表示某个端口在监听 如果有一个外部程序&#xff08;客户端&#xff09;连接到该端口…...

如何利用ChatGPT提升学术论文讨论部分的撰写质量和效率

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。经过数月爆肝,终于完成学术AI使用教…...

谷歌seo网址如何快速被收录?

想让你的网站快速被搜索引擎收录&#xff0c;可以采取几种不同的策略。首先&#xff0c;确保你的网站内容丰富、有价值&#xff0c;搜索引擎更喜欢收录内容质量高的网站。同时&#xff0c;增强网站的外链建设&#xff0c;做好这些站内优化&#xff0c;接下来就是通过谷歌搜索控…...

自动驾驶---什么是Frenet坐标系?

1 背景 为什么提出Frenet坐标系&#xff1f;Frenet坐标系的提出主要是为了解决自动驾驶系统在路径规划的问题&#xff0c;它基于以下几个原因&#xff1a; 符合人类的驾驶习惯&#xff1a; 人类驾驶员在驾驶过程中&#xff0c;通常不会关心自己距离起点的横向和纵向距离&#x…...

如何编写Linux PCI设备驱动器 之一

如何编写Linux PCI设备驱动器 之一 PCI寻址PCI驱动器使用的APIpci_register_driver()pci_driver结构pci_device_id结构 如何查找PCI设备存取PCI配置空间读配置空间APIs写配置空间APIswhere的常量值共用部分类型0类型1 PCI总线通过使用比ISA更高的时钟速率来实现更好的性能&…...

梯度弥散问题及解决方法

梯度弥散问题及解决方法 简要阐述梯度弥散发生的原因以及现象针对不同发生原因有什么解决方案1. 使用ReLU及其变体激活函数2. 权重初始化3. 批量归一化(Batch Normalization)4. 残差连接(Residual Connections)5. 梯度裁剪(Gradient Clipping)简要阐述梯度弥散发生的原因…...

Python中pickle文件操作及案例-学习篇

一、简介 Pickle 算是Python的一种数据序列化方法&#xff0c;它能够将对象转换为字节流&#xff0c;进而可以保存到文件中或通过网络传输给其他Python程序。这种方式非常适合快速简便地保存复杂的数据结构&#xff0c;例如列表、字典、自定义对象等。 二、pickle文件的读写 …...

微服务日常总结

1.当我们在开发中&#xff0c;需要连接多个库时&#xff0c;可以在yml中进行配置。 当在查询的时候&#xff0c;跨库时&#xff0c;需要通过DS 注解来指定&#xff0c;需要yml配置需要保持一致。 2. 当我们想把数据存入到clob类型中&#xff0c;需要再字段 的占位符后面加上j…...

C和C++内存管理

C和C内存管理 &#xff08;一&#xff09;C/C内存分布&#xff08;二&#xff09;C语言动态内存管理&#xff08;三&#xff09;c内存管理&#xff08;3.1&#xff09;new/delete操作内置类型&#xff08;3.2&#xff09;new和delete操作自定义类型 &#xff08;四&#xff09;…...

axios取消请求

1.使用CancelToken: class RequestHttp {service: AxiosInstance;public constructor(config: AxiosRequestConfig) {// 实例化axiosthis.service axios.create(config);/*** description 请求拦截器* 客户端发送请求 -> [请求拦截器] -> 服务器*/this.service.interce…...

阿里中间件——diamond

一、前言 最近工作不忙闲来无事&#xff0c;仔细分析了公司整个项目架构&#xff0c;发现用到了很多阿里巴巴集团开源的框架&#xff0c;今天要介绍的是中间件diamond. 二、diamond学习笔记 1、diamond简介 diamond是一个管理持久配置&#xff08;持久配置是指配置数据会持久化…...

pyenv -- 一款macos下开源的多版本python环境安装管理工具 国内加速版安装 + 项目venv虚拟环境 pip加速 使用与总结

一个比较方便实用的python多版本环境安装管理工具, 阿里云加速版本 pyenv安装方法: 直接克隆本下面到你的本地目录,然后设置环境变量即可 git clone https://gitee.com/tekintian/pyenv.git ~/.pyenv 环境变量配置 在~/.bash_profile 或者 .zshrc 中增加环境变量 export …...

VitePress 自定义 CSS 指南

VitePress 是一款基于 Vite 和 Vue 3 的静态网站生成器&#xff0c;专为文档编写而设计。尽管 VitePress 提供了丰富的默认主题&#xff0c;但在某些情况下&#xff0c;我们可能需要对其进行更深入的定制以满足特定的视觉需求。本文将详细介绍如何通过覆盖根级别的 CSS 变量来自…...

【舍入,取整,取小数,取余数丨Excel 函数】

数学函数 1、Round函数 Roundup函数 Rounddown函数 取整&#xff1a;(Int /Trunc)其他舍入函数&#xff1a; 2、Mod函数用Mod函数提取小数用Mod函数 分奇偶通过身份证号码判断性别 1、Round函数 Roundup函数 Rounddown函数 Round(数字&#xff0c;保留几位小数)&#xff08;四…...

无线信道中ph和ph^2的场景

使用 p h ph ph的情况&#xff1a; Rayleigh 分布的随机变量可以通过两个独立且相同分布的零均值、高斯分布的随机变量表示。设两个高斯随机变量为 X ∼ N ( 0 , σ 2 ) X \sim \mathcal{N}(0, \sigma^2) X∼N(0,σ2)和 Y ∼ N ( 0 , σ 2 ) Y \sim \mathcal{N}(0, \sigma^2)…...

HCIA--实验五:静态路由综合实验

静态路由综合实验 一、实验内容&#xff1a; 1.需求/目的&#xff1a; 在ensp模拟器中使用四个路由器&#xff0c;并且在路由器上创建loopback接口&#xff0c;相当于连接了一台主机&#xff0c;通过配置静态路由的方式实现全网通。 二、实验过程 1.道具&#xff1a; 4个…...

保姆级教程:用iSYSTEM winIDEA和iC5000给S32K148烧录程序,附完整配置流程

从零掌握iSYSTEM工具链&#xff1a;S32K148开发板烧录与调试全流程实战第一次接触iSYSTEM的winIDEA和iC5000仿真器时&#xff0c;很多嵌入式开发者都会感到无从下手。不同于常见的开源工具链&#xff0c;这套专业级开发环境在汽车电子和工业控制领域有着广泛应用&#xff0c;尤…...

隧道裂缝剥落病害AI识别系统

我国现有公路隧道超2.5万座&#xff0c;总里程超2.8万公里&#xff0c;其中运营超过15年的老旧隧道占比达35%。据交通运输部2025年统计&#xff0c;年均因隧道结构病害导致的交通中断超1200次&#xff0c;直接经济损失超45亿元。传统检测模式暴露四大核心痛点&#xff1a;检测周…...

Allegro等长设置翻车实录:拓扑模板法的3个坑与手工PinPair的救赎

Allegro等长设计避坑指南&#xff1a;从拓扑模板到精准PinPair的实战演进在高速PCB设计中&#xff0c;等长匹配如同精密钟表里的齿轮啮合&#xff0c;差之毫厘便可能导致整个系统时序崩塌。当设计从简单的点对点结构升级到多负载复杂拓扑时&#xff0c;Allegro用户常陷入两种典…...

用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑

用C语言解决‘换硬币’问题&#xff1f;我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时&#xff0c;那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者&#xff0c;理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...

番茄小说下载器终极指南:三步构建你的离线阅读自由王国

番茄小说下载器终极指南&#xff1a;三步构建你的离线阅读自由王国 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾在地铁里读到精彩章节时突然断网&#xff1f;是否在…...

OpenClaw 连接阿里云百炼图文教程

OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址&#xff1a;https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...

Onekey终极指南:如何5分钟快速获取Steam游戏清单的免费神器

Onekey终极指南&#xff1a;如何5分钟快速获取Steam游戏清单的免费神器 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 还在为复杂的Steam游戏清单下载而头疼吗&#xff1f;想要备份游戏资源却不…...

组态王通用扫码枪配置

使用组态王扫码枪驱动&#xff0c;是绑定变量&#xff0c;扫码后直接就可以显示扫码内容。解决每次扫码输入数据时必须先用鼠标点进输入框内的问题。驱动安装先添加驱动&#xff0c;亚控网站的文件为 barcodescanner&#xff0c;这个文件是组态王通用扫码枪的驱动&#xff0c;但…...

Mysql:事务管理(中)

在前面的章节中&#xff0c;我们提到了 MVCC&#xff08;多版本并发控制&#xff09;&#xff0c;它巧妙地通过“版本快照”解决了“读-写”冲突&#xff0c;实现了非阻塞读。但如果两个事务同时执行 UPDATE 操作修改同一行数据&#xff0c;即 写-写&#xff08;Write-Write&am…...

双稳健机器学习:用正交性与交叉拟合解决因果推断中的ML偏差

1. 项目概述&#xff1a;当机器学习遇见因果推断的“干扰”难题在实证研究的日常工作中&#xff0c;我们常常面临一个核心矛盾&#xff1a;我们真正关心的&#xff0c;往往只是一个或几个关键参数——比如一项政策对就业率的平均影响&#xff08;平均处理效应&#xff0c;ATE&a…...