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

Vue3中的ref和reactive

今天在写前端, 用的是Vue3, 其实之前也有写过一些前端, 但是涉及不深, 差不多是基础的水平, 然后现在想跟进下Vue3, 就有点吃力得紧, 就单单一个变量的引用, 就折腾得不轻,调试的时候, 取值都是各种undefined, 然后就特地找了下相关的资料, 这才明白ref和reactive的区别。
在 Vue 3 中,refreactive 是用于创建响应式数据的两个核心 API。它们的主要区别在于处理数据的方式和适用场景。

ref

  • ref 用于定义一个响应式的数据对象。
  • 它可以接受一个内部值并返回一个响应式的、可变的 ref 对象,该对象只有一个 .value 属性。
  • 在模板中直接使用 ref 时,Vue 会自动解构 .value,因此不需要显式地写 .value
  • 在 JavaScript 中操作 ref 时,必须使用 .value 来访问或修改其值。

reactive

  • reactive 用于创建一个响应式的对象或数组。
  • 它返回一个对象的响应式代理。
  • 在模板或响应式对象内部直接访问属性时,不需要 .value
  • reactive 只能处理对象和数组,对于基本数据类型(String、Number、Boolean 等)不适用。

什么时候用 .value 取值

  • 当你在 JavaScript 中直接操作 ref 时,需要使用 .value
  • 当你将 ref 作为响应式对象的属性时,在 JavaScript 中操作该属性时也需要 .value

什么时候可以直接取值

  • 在 Vue 模板中,Vue 会自动解构 ref.value,因此可以直接使用 ref 而不需要 .value
  • 对于 reactive 创建的响应式对象,无论是在模板中还是在 JavaScript 中,都可以直接访问其属性,不需要 .value

示例

import { ref, reactive } from 'vue';
const count = ref(0); // 创建一个响应式的 ref 对象
const state = reactive({ count: 1 }); // 创建一个响应式的 reactive 对象
// 在 JavaScript 中操作 ref 时需要使用 .value
console.log(count.value); // 0
count.value++;
// 在 JavaScript 中操作 reactive 对象时,直接访问属性
console.log(state.count); // 1
state.count++;
// 在模板中使用 ref 和 reactive
<template><div>{{ count }}</div> <!-- 自动解构 .value --><div>{{ state.count }}</div> <!-- 直接访问属性 -->
</template>

在选择使用 ref 还是 reactive 时,可以根据你的具体需求来决定。如果你需要处理基本数据类型,或者希望明确地管理单个值的响应性,那么 ref 是更好的选择。如果你正在处理一个对象或数组,并且希望整个对象或数组都是响应式的,那么 reactive 会更加适合。

相关文章:

Vue3中的ref和reactive

今天在写前端&#xff0c; 用的是Vue3&#xff0c; 其实之前也有写过一些前端&#xff0c; 但是涉及不深&#xff0c; 差不多是基础的水平&#xff0c; 然后现在想跟进下Vue3&#xff0c; 就有点吃力得紧&#xff0c; 就单单一个变量的引用&#xff0c; 就折腾得不轻&#xff0…...

第二十节 Java 正则表达式

正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言&#xff0c;但是在每种语言中有细微的差别。 Java正则表达式和Perl的是最为相似的。 java.util.regex包主要包括以下三个类&#xff1a; Pattern类&#xff1a;…...

ubuntu下vscode+STM32CubeMX+openocd+stlinkv2搭建STM32开发调试下载环境

1、换源 清华源 # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restr…...

【嵌入式高级C语言】9:万能型链表懒人手册

文章目录 序言单向不循环链表拼图框架搭建 - Necessary功能拼图块1 创建链表头信息结构体 - Necessary2 链表头部插入 - Optional3 链表的遍历 - Optional4 链表的销毁 - Necessary5 链表头信息结构体销毁 - Necessary6 获取链表中节点的个数 - Optional7 链表尾部插入 - Optio…...

如何快速分析OB集群日志,敏捷诊断工具obdiag分析能力实践——《OceanBase诊断系列》之四

1. 前言 obdiag是OceanBase的敏捷诊断工具。1.2版本中&#xff0c;obdiag支持快速收集诊断信息&#xff0c;但仅有收集能力是不够的&#xff0c;还需要有分析能力。因此在obdiag的1.3.0版本中&#xff0c;我们加入了OB集群的日志分析功能。用户可以一键进行集群的OB日志的分析…...

7.1.3 Selenium的用法2

目录 1. 切换 Frame 2. 前进后退 3. 对 Cookies 操作 4. 选项卡管理(了解) 5. 异常处理 6. 反屏蔽 7. 无头模式 1. 切换 Frame 我们知道网页中有一种节点叫作 iframe&#xff0c;也就是子 Frame&#xff0c;相当于页面的子页面&#xff0c;它的结构和外部网页的结构完全…...

微信小程序(五十四)腾讯位置服务示范(2024/3/8更新)

教程如下&#xff1a; 上一篇 1.先在官网注册一下账号&#xff08;该绑定的都绑定一下&#xff09; 腾讯位置服务官网 2.进入控制台 3.创建应用 3. 额度分配 4.下载微信小程序SDK 微信小程序SDK下载渠道 5.解压将俩js文件放在项目合适的地方 6.加入安全域名or设置不验证合…...

Selenium库快速查找网页元素及执行浏览器模拟操作

Selenium 是一个自动化测试工具&#xff0c;主要用于模拟用户在网页上的行为&#xff0c;进行自动化测试。它支持多种浏览器&#xff0c;并且可以在多种操作系统上运行。以下是 Selenium 库的一些主要特点和用途&#xff1a; 网页自动化测试&#xff1a; Selenium 可以模拟用户…...

2024年(第十届)全国大学生统计建模大赛选题参考(一)

本届大赛主题为“大数据与人工智能时代的统计研究”&#xff0c;参赛队围绕主题自拟题目撰写论文。 1. 大数据分析与处理 研究思路 数据收集&#xff1a;首先确定数据来源&#xff0c;例如社交媒体、企业数据库或公开数据集&#xff0c;并使用爬虫技术或API收集数据。数据预…...

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测 目录 EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GCN基于图卷积神经网络的数据分类预测 Matlab2023 2.多输入单输出的分类预测&#xf…...

贪心算法介绍

贪心算法是一种在求解问题时总是做出在当前看来是最好的选择的算法。它不从整体最优上加以考虑&#xff0c;所做出的选择只是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解&#xff0c;关键是贪心策略的选择&#xff0c;选择的贪心策略必须具备无后效性…...

前端常用数据结构

前端常用数据结构 前端常用数据结构数据结构数组栈队列链表单向链表双向链表树前端常用数据结构 什么是数据结构常用的数据结构 JavaScript 如何实现这些数据结构实际场景数据结构 所谓数据结构,是在计算机中组织、管理和存储数据的一种方式。 🙋:你知道哪些数据结构? …...

java设计模式之——单例模式

一&#xff1a;什么是单例模式&#xff1f; 构造函数private之后&#xff0c;还需要提供一个方法&#xff0c;要保证只能初始化一个单例对象&#xff0c;并且需要考虑线程安全的问题。 二&#xff1a;单例模式多种写法&#xff1f; 具体到写法上&#xff0c;主要有5种&#…...

深入理解计算机系统学习笔记

1.1异常处理 处理器中很多事情都会导致异常控制流&#xff0c;此时&#xff0c;程序执行的正常流程被破坏掉。异常可以由程序执行从内部产生&#xff0c;也可以由某个外部信号从外部产 生。 我们的指令集体系结构包括三种不同的内部产生的异常&#xff1a; l)halt指令&#…...

Linux-进程信号

目录 概念信号产生信号注册信号注销信号处理实例 信号的基本应用 概念 进程信号&#xff1a; 概念&#xff1a;信号就是软件中断。信号就是用于向进程通知某个事件的产生&#xff0c;打断进程当前操作&#xff0c;去处理这个事件。 linux中信号的种类&#xff1a;使用kill -l命…...

Linux服务器安装jdk

背景: 安装JDK是我们java程序在服务器运行的必要条件,下面描述几个简单的命令就可再服务器上成功安装jdk 命令总览: yum update -y yum list | grep jdk yum -y install java-1.8.0-openjdk java -version 1.查看可安装版本 yum list | grep jdk 2.如果查不到可先进行 yum upd…...

基于 HBase Phoenix 构建实时数仓(2)—— HBase 完全分布式安装

目录 一、开启 HDFS 机柜感知 1. 增加 core-site.xml 配置项 2. 创建机柜感知脚本 3. 创建机柜配置信息文件 4. 分发相关文件到其它节点 5. 重启 HDFS 使机柜感知生效 二、主机规划 三、安装配置 HBase 完全分布式集群 1. 在所有节点上配置环境变量 2. 解压、配置环境…...

equals()与==的区别

在Java中 可以对基本类型进行比较,比较的是值是否相等 也可以对引用类型(对象)进行比较,比较的是引用变量所指向的空间地址 public static void main(String[] args) {int a 10;int b 10;System.out.println(ab);//true// 基本类型比较,比较值是否相等String s1 new Stri…...

什么是数据采集与监视控制系统(SCADA)?

SCADA数据采集是一种用于监控和控制工业过程的系统。它可以实时从现场设备获得数据并将其传输到中央计算机&#xff0c;以便进行监控和控制。SCADA数据采集系统通常使用传感器、仪表和控制器收集各种类型的数据&#xff0c;例如温度、压力、流量等&#xff0c;然后将这些数据汇…...

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(五)——多条件搜索并分页展示

前后端数据交互 书接上文&#xff0c;我们上节课通过前后端数据交互实现了分页查询和单条件搜索分页查询的功能&#xff0c;最后留了个小尾巴&#xff0c;就是把其他两个搜索条件&#xff08;email,address&#xff09;也加进来&#xff0c;实现多条件搜索并分页展示。这节课我…...

手把手教你改造RuoYi-Vue,让它同时连接MySQL和TDengine 3.0

企业级物联网监控系统改造实战&#xff1a;RuoYi-Vue整合TDengine 3.0全指南 当传统关系型数据库遇上物联网海量时序数据&#xff0c;技术架构该如何优雅进化&#xff1f;本文将带您深入一个真实的企业级改造案例——基于RuoYi-Vue框架的监控系统如何无缝接入TDengine时序数据库…...

Qwen3-4B-Thinking多场景落地:电商客服+教育答疑+IT文档生成三合一

Qwen3-4B-Thinking多场景落地&#xff1a;电商客服教育答疑IT文档生成三合一 1. 模型简介与核心能力 Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill是一个基于vLLM部署的高效文本生成模型&#xff0c;通过在大约5440万个由Gemini 2.5 Flash生成的token上进行训练&#xf…...

别再从头配芯片了!手把手教你用旧版.ioc文件在STM32CubeIDE里快速‘复活’老项目

别再从头配芯片了&#xff01;手把手教你用旧版.ioc文件在STM32CubeIDE里快速‘复活’老项目 接手一个基于STM32的遗留项目时&#xff0c;最让人头疼的往往不是代码逻辑本身&#xff0c;而是那些看似简单却暗藏玄机的硬件配置。上周我就遇到了这样一个案例&#xff1a;客户发来…...

A.每日一题:2078. 两栋颜色不同且距离最远的房子

题目链接&#xff1a;2078. 两栋颜色不同且距离最远的房子&#xff08;简单&#xff09; 算法原理&#xff1a; 解法一&#xff1a;暴力枚举 2ms击败10.42% 时间复杂度O(N) 思路很简单&#xff0c;逐个枚举每个元素&#xff0c;如果后续元素有与之不同的&#xff0c;就更新ret&…...

9 款免费测试管理系统对比:谁更适合中小企业和研发团队?

本文将深入对比 9 款免费测试管理工具与开源测试平台&#xff1a;PingCode、Worktile、Qase、Testiny、QA Touch、TestLink、Kiwi TCMS、Squash TM、Tuleap。一、预算有限团队选择免费测试管理工具时&#xff0c;先看什么 很多企业在找免费测试管理工具时&#xff0c;第一反应是…...

HTML函数开发用防眩光屏幕更舒适吗_显示面板类型选择【指南】

防眩光&#xff08;雾面&#xff09;屏能显著降低前端开发者视觉疲劳——通过散射环境光消除反光&#xff0c;提升长时间编码可读性&#xff0c;虽轻微降低对比度与色彩饱和度&#xff0c;但对写代码无害且更护眼。HTML 函数开发本身和屏幕防眩光无关&#xff0c;但长时间写代码…...

推荐系统实时更新策略

推荐系统实时更新策略&#xff1a;让内容推荐更懂你 在信息爆炸的时代&#xff0c;推荐系统已成为用户获取内容的核心工具。传统的推荐模型往往依赖离线训练&#xff0c;难以捕捉用户兴趣的实时变化。实时更新策略通过动态调整推荐结果&#xff0c;让系统更敏捷地响应用户行为…...

爱毕业(aibiye)优化数学建模论文的复现流程,确保智能排版的高效与准确

还在为论文写作头痛&#xff1f;特别是数学建模的优秀论文复现与排版&#xff0c;时间紧、任务重&#xff0c;AI工具能帮上大忙吗&#xff1f;今天&#xff0c;我们评测10款热门AI论文写作工具&#xff0c;帮你精准筛选最适合的助手。 aibiye&#xff1a;专注于语法润色与结构…...

海思3516a OSD水印进阶:动态更新、多区域叠加与性能优化心得

海思3516a OSD水印进阶&#xff1a;动态更新、多区域叠加与性能优化实战 在嵌入式视频处理领域&#xff0c;OSD&#xff08;On-Screen Display&#xff09;水印功能早已超越简单的静态文字叠加&#xff0c;成为智能设备中不可或缺的信息交互层。当我们面对安防摄像头需要实时更…...

开发小店简易收支台账自动生成代码,给社区团购小微店铺,做每日营收支出,智能分类汇总对账。

一个非常接地气、适合社区小店老板娘/店主使用的完整方案&#xff1a;基于 Python 的「社区团购小微店铺简易收支台账自动生成系统」定位&#xff1a;每日记账 → 自动分类 → 汇总对账 → 台账输出一、实际应用场景描述典型场景&#xff1a;社区团购自提点 / 小微便利店&#…...