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

Vue3.5 有那些变化?

重构响应式

Vue3.5 中对内部响应式系统进行了重构,内存占用减少了 56%,对于开发行为来说是没有任何改变的。

Props 解构赋值

在之前的版本中,我们为组件设置默认值的过程是这样的;

const props = withDefaults(defineProps<{count?: numbermsg?: string}>(),{count: 0,msg: 'Hello Vue3.5',}
)

在 Vue3.5 之后,Props 支持解构赋值,大大简化了默认值声明的过程;

const { count = 0, msg = 'Hello Vue3.5' } = defineProps<{count?: numbermsg?: string
}>()

同时在 Vue3.5 之后可以直接监听 Props 内部的参数

watch(() => count,newValue => {console.log('watch ==>', newValue)}
)

onEffectCleanup 注册监听回调

在组件卸载或者下一次监听的时候会自动执行 onEffectCleanup 回调函数,而无需在 beforeUnmount 中统一清理,代码结构更加合理。

watch(() => count,newValue => {const timer = setTimeout(() => {console.log('watch ==>', newValue)}, 1000)onWatcherCleanup(() => {console.log('onWatcherCleanup', count)clearTimeout(timer)})}
)

useTemplateRef 获取元素

在 Vue3.5 之前获取元素是通过 ref 来获取的,既可以创建响应式数据,也可以获取对应的元素,是不符合单一职责原则的。

<template><input ref="inputRef" />
</template><script setup>
import { ref } from 'vue'
const inputRef = ref(null)
</script>

在 Vue3.5 之后的版本中,我们通过 useTemplateRef() 来获取元素

<template><input ref="input" />
</template><script setup>
import { nextTick, ref, useTemplateRef } from 'vue'
const inputRef = useTemplateRef('input')nextTick(() => {console.log(inputRef.value)
})
</script>

Deferred Teleport 延迟传送

在 Vue3.5 之前,我们需要确保 Teleport 传送的元素一定在 Teleport 上下文之前才可以正常工作。

<template><div id="container"></div><Teleport to="#container">...</Teleport>
</template>

在 Vue3.5 之后我们可以添加 defer 属性来进行延迟传送,无需确保元素上下文位置。

<template><Teleport defer to="#container">...</Teleport><div id="container"></div>
</template>

总结

Vue3.5 版本已经是默认的版本了,同时也对某些特性场景下进行的优化和新增的功能,总体来说会更加方便,代码结构更加简洁,大家赶快体验起来吧~

最后

感谢你的阅读~

如果你有任何的疑问欢迎您在后台私信,我们一同探讨学习!

如果觉得这篇文章对你有所帮助,点赞、在看是最大的支持!


http://www.mrgr.cn/news/34976.html

相关文章:

  • 随手记:简单实现纯前端文件导出(XLSX)
  • MySQL与Oracle对比及区别
  • 动手学深度学习69 BERT预训练
  • 大数据面试题--kafka夺命连环问(后10问)
  • 前端知识点---Javascript的对象(Javascript)
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • FPGA实现频率、幅度、相位可调的DDS以及DDS Compiler IP核的使用验证
  • Python_yield
  • inplace-abn报错
  • 2024年网络安全人才平均年薪 24.09 万,跳槽周期 31 个月,安全工程师现状大曝光!_2024网络安全人才市场状况研究报告
  • 智能密码、指纹锁语音芯片ic方案 可存放40s语音内容 NVD语音芯片
  • 电器行业文件加密怎么做?防泄密哪种方法实用?
  • CSS注释
  • C++中序列式容器和关联式容器
  • Vue3:shallowRef与shallowReactive
  • 数据处理与统计分析篇-day09-数据透视表与日期时间处理
  • 记一次Copilot被封解封的经历
  • 企业数据安全与资产处置的最佳选择 —— 淼一科技
  • 宝马撑不住了,买i7居然能省出一辆问界M9
  • USB总线同步数据采集卡6路高速模拟量采集带DIO功能USB2884/2885/2886
  • 智能挖耳勺和普通挖耳勺区别在哪? 4款智能挖耳勺推荐!
  • android 页面布局(1)
  • hrm人力资源管理系统,绩效,考勤,薪酬,五险一金,等全面人力管理(源码+配套方案)
  • 【C++掌中宝】走进C++引用的世界:从基础到应用
  • 人工智能AI数据库,太酷了吧!(附医疗/金融/零售行业方案)
  • 【排列距离 / B】