响应式数据ref()和reactive()的使用

news/2025/2/24 13:04:07

官方网址:响应式基础 | Vue.js

在 Vue 3 中,refreactive 是用于创建响应式数据的两个核心 API。它们的用法和适用场景有所不同,以下是它们的详细说明和使用方法。

ref

ref 用于创建一个响应式的基本类型对象类型的数据。它会将数据包装在一个对象中,并通过 .value 访问或修改数据。

使用方法

  • 基本类型ref 通常用于基本类型(如 StringNumberBoolean 等)。

  • 对象类型ref 也可以用于对象类型,但更推荐使用 reactive

javascript">import { ref } from 'vue';
​
// 创建一个响应式的基本类型数据
const count = ref(0);
​
// 创建一个响应式的对象类型数据
const user = ref({
  name: 'Alice',
  age: 25
});
​
// 访问和修改数据
console.log(count.value); // 0
count.value++; // 修改数据
​
console.log(user.value.name); // Alice
user.value.age = 26; // 修改对象属性

在模板中使用

在模板中,ref 的值可以直接使用,不需要加 .value

javascript"><template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="count++">Increment</button>
  </div>
</template>
​
<script setup>
import { ref } from 'vue';
​
const count = ref(0);
</script>

注意事项

<script setup> 脚本中和在模板中使用不同,在脚本中使用时必须使用.value去访问和修改,在模板中使用时不需要加.value

在js脚本中修改变量时,必须使用.value去赋值修改。

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

不可以直接修改,错误示例如下:

javascript">import { ref } from 'vue'
const count = ref(0);
const str = ref('');
​
count = 2;//这是错误的
str = "小明";//这是错误的

reactive

英/riˈæktɪv/

reactive 用于创建一个响应式的对象(包括数组)。它会递归地将对象的所有属性转换为响应式数据。

使用方法

  • 对象类型reactive 主要用于对象或数组。

  • 基本类型reactive 不能直接用于基本类型。

javascript">import { reactive } from 'vue';
​
// 创建一个响应式的对象
const state = reactive({
  count: 0,
  user: {
    name: 'Alice',
    age: 25
  }
});
​
// 访问和修改数据
console.log(state.count); // 0
state.count++; // 修改数据
​
console.log(state.user.name); // Alice
state.user.age = 26; // 修改嵌套属性

ref和reactive区别

  • ref 适用于基本数据类型

  • reactive 适用于对象或数组,尤其是嵌套对象。


http://www.niftyadmin.cn/n/5864351.html

相关文章

Git版本控制系统---本地操作(万字详解!)

目录 git基本配置 认识工作区、暂存区、版本库 添加文件--情况一&#xff1a; 添加文件-情况二: 修改文件: 版本回退&#xff1a; git基本配置 1.初始化本地仓库&#xff0c;注意&#xff1a;一定要在一个目录下进行&#xff0c;一般都是新建一个文件夹&#xff0c;在文件…

MySQL -安装与初识

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【暂无】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 文章目录 安装1. 更新系统包列表2. 安装MySQL服务器3. 启动并验证MySQL服务4. 运行安全配置向导5. 验证MySQL登录6. 设置root用户密码7. 配置远程访问&#xff08;可选&…

ArcGIS Pro在洪水淹没分析中的应用与实践

如何使用ArcGIS Pro进行洪水淹没分析 洪水作为一种自然灾害&#xff0c;对人类社会和自然环境造成的威胁日益显著。 为了更好地理解和预测洪水事件&#xff0c;洪水淹没分析显得尤为重要。 ArcGIS Pro作为一款强大的地理信息系统&#xff08;GIS&#xff09;软件&#xff0c…

图书馆系统源码详解

本项目是一个基于Scala语言开发的图书馆管理系统。系统主要由以下几个部分组成&#xff1a;数据访问层&#xff08;DAO&#xff09;、数据模型层&#xff08;Models&#xff09;、服务层&#xff08;Service&#xff09;以及用户界面层&#xff08;UI&#xff09;。以下是对项目…

Linux MySQL 8.0.29 忽略表名大小写配置

Linux MySQL 8.0.29 忽略表名大小写配置 问题背景解决方案遇到的问题&#xff1a; 问题背景 突然发现有个大写的表报不存在。 在Windows上&#xff0c;MySQL是默认支持忽略大小写的。 这个时候你要查询一下是不是没有配置&#xff1a; SHOW VARIABLES LIKE lower_case_table…

论文阅读:Non-parametric Sensor Noise Modeling and Synthesis

今天介绍的这篇工作是 ECCV 2024 的一篇文章&#xff0c;关于建模 sensor 噪声分布的。 Abstract 本文提出了一种新颖的非参数传感器噪声模型&#xff0c;该模型可直接从拍摄图像中按强度级别构建概率质量函数。我们证明&#xff0c;与现有模型相比&#xff0c;我们的噪声模型…

怎么合并主从分支,要注意什么

在 Git 中合并主从分支&#xff08;例如将 feature 分支合并到 main 分支&#xff09;是一个常见操作。以下是具体步骤和注意事项&#xff1a; 合并分支的步骤 切换到主分支 git checkout main确保当前在 main 分支。 拉取最新代码 git pull origin main确保 main 分支是最…

【llm落地】从零到一,用DeepSeek打造智能BI工具:自然语言驱动数据洞察

在数据驱动的时代,商业智能 (BI) 工具已经成为企业决策的关键。然而,传统的 BI 工具往往操作复杂,需要专业技能才能驾驭。想象一下,如果用户只需要用 自然语言 就能轻松查询数据、获取分析结果甚至生成可视化图表,那将会多么高效和便捷! 本文将带你踏上从零到一构建智能…