VUE3 REF用法
thinkzyx
2024-10-20

在Vue 3中,ref是一个非常重要的API,它用于创建一个响应式的引用对象。这个对象包含一个.value属性,用于存储和访问实际的值。ref对象是响应式的,任何对.value的修改都会触发视图的更新。

ref的基本用法

javascript
import { ref } from 'vue';
const count = ref(0);
console.log(count.value); // 0
count.value++;
console.log(count.value); // 1

如果将对象分配给ref值,那么这个对象会通过reactive方法变得深度响应式。这意味着对象内部的任何变化都会触发视图的更新。

ref的特点

  • 响应式:对.value的操作会被追踪,触发相关更新。
  • 可更改:可以随时修改.value的值。
  • 支持基本类型和复杂类型:不仅能处理字符串、数字等基本类型,还能处理对象和数组。

ref在模板中的解包

ref在模板中作为顶层属性被访问时,它们会被自动“解包”,所以不需要使用.value

html
<script setup>
import { ref } from 'vue';
const a = ref(1);
</script>
<template>
<div>a:{{ a }}</div>
</template>

但请注意,仅当ref是模板渲染上下文的顶层属性时才适用自动“解包”。

ref与reactive的比较

  • ref适用于基本数据类型,也可以处理复杂类型。
  • reactive适用于对象和数组,提供更直接的响应式处理。
  • ref需要使用.value访问属性,而reactive可以直接访问属性。
  • ref在传递给函数或从对象上解构时不会丢失响应性,而reactive可能会丢失响应性,需要使用toRefstoRef来处理。

使用场景

  • 如果你需要一个响应式原始值,那么使用ref()是正确的选择。
  • 如果你需要一个响应式对象,层级不深,那么使用ref也可以。
  • 如果你需要一个响应式可变对象,并且对象层级较深,需要深度跟踪,那么使用reactive

总结

ref作为Vue 3中重要的响应式API,以其简洁和强大的功能,成为前端开发中不可或缺的工具。通过深入理解其使用场景、最佳实践和源码原理,我们可以更高效地管理和更新状态,提升前端开发的效率和代码质量。

扫码访问小程序中的本文

微信小程序二维码
收藏 0
打赏
python批量导出excel表格并且重命名为其中某个相对应列的值
上一篇
音视频转换软件
下一篇

发表评论

注册不是必须的

未登录
登录后查看我的资料卡~
最新文章
不想更新windows系统的有福了
3 0 0

不想更新windows系统的有福了

每次更新都太烦了,尤其是公司的电脑,每次一更新就耽误工作进度,所以在吾爱论坛找了这个小工具。理论win7-win11都通用 来源:https://www.52pojie.cn/thread-2122646-1-1.html 扫码访问小程序中的本文资源加载中...
微信电脑端多开方法(无风险)
4 0 0

微信电脑端多开方法(无风险)

操作 右键桌面微信打开属性-复制目标路径 桌面新建文本输入 start 路径 例如 start "C:\Program Files\Tencent\WeChat\WeChat.exe" 来了,把”后引号往前面的wechat放,变成 start "C:\Program Files\Tencent\WeChat"\WeChat.exe 然后你要多开一个就再加 start "C:\Program Fil […]
python利用ffmpeg修改MP3音质
2 0 0

python利用ffmpeg修改MP3音质

一键安装ffmpeg @echo off set "ffmpeg_url=http://link.zhuazii.cn/down.php/75582a2b8500965fd2b2bd6aa0fc7ee0.zip" ; 替换为实际的FFmpeg下载链接 set "ffmpeg_path=C:\ffmpeg\bin" set "ffmpeg_zip=C:\ffmpeg.zip" REM 下载FFmpe […]
Linux更换软件源
3 0 0

Linux更换软件源

宝塔下载脚本的速度很慢,于是就想着有没有可能解决这个问题。 搜索之后发现可以通过更换软件源来解决这个问题。 教程 更换软件源一共有两种方法,推荐使用清华源 1.通过宝塔的Linux工具箱来更换。 点击设置-镜像源-清华源 2.就是通过命令行或脚本来实现,这里强烈推荐脚本,因为省心。 在终端中输入以下命令 bash <(curl -sSL https://edgeone.linuxmirror […]
扫描二维码
扫描二维码
在手机上浏览此页面