vue3 ref 和 reactive 区别

Vue 3 引入了两种新的响应式 API:ref 和 reactive。这两个 API 都用于创建响应式数据,但它们的使用场景和行为有所不同。

ref

用途:ref 用于创建基本数据类型的响应式引用,如字符串、数字、布尔值等。
使用方式:在模板中使用时,Vue 会自动添加 .value 来访问 ref 创建的数据。在 JavaScript 中,你需要通过 .value 属性来获取或修改 ref 对象中的数据。
原理:ref 通过 Object.defineProperty 的 get 和 set 来实现响应性,它返回一个对象,该对象的 .value 属性是响应式的。

reactive

用途:reactive 用于创建对象或数组的响应式代理。
使用方式:在模板中直接使用 reactive 创建的数据,不需要添加 .value。在 JavaScript 中,你可以直接访问和修改 reactive 对象的属性,就像访问普通 JavaScript 对象一样。
原理:reactive 使用 Proxy 来创建响应式代理,这意味着你可以访问和修改对象的所有属性,而不需要通过 .value。

区别总结

数据类型:ref 适用于基本数据类型,而 reactive 适用于对象和数组。
访问方式:ref 需要通过 .value 访问或修改数据,reactive 则直接访问对象属性。
模板中的使用:在 Vue 模板中使用 ref 类型的数据时,Vue 会自动处理 .value,而在 reactive 对象中,你可以直接使用属性
设计理念:ref 主要解决单一元素/数据的响应式问题,而 reactive 解决复杂数据结构的响应式问题。

示例

// 使用 ref

const count = ref(0);

// 在模板中使用 count.value 来显示或绑定
// 在 JavaScript 中访问或修改 count.value

// 使用 reactive

const state = reactive({ count: 0 });

// 在模板中直接使用 state.count 来显示或绑定
// 在 JavaScript 中直接访问或修改 state.count

在实际开发中,你可以根据需要创建的数据类型和使用场景来选择使用 ref 还是 reactive。
对于简单的基本数据类型,使用 ref 可能更合适;而对于复杂的数据结构,如组件的状态管理,reactive 提供了更直观和方便的方式来处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新开源解密版TwoNav网址导航系统源码

源码简介 2024最新开源解密版TwoNav网址导航系统源码去授权破解版 内置二十多套主题模板。 已去授权,最新开源解密版。TwoNav 是一款开源的书签(导航)管理程序,使用PHP SQLite 3开发,界面简洁,安装简单&…

FFmepg--音频编码流程--pcm编码为aac

文章目录 基本概念流程apicode(核心部分) 基本概念 从本地⽂件读取PCM数据进⾏AAC格式编码,然后将编码后的AAC数据存储到本地⽂件。 PCM样本格式:未经压缩的⾳频采样数据裸流 参数: Sample Rate : 采样频率Sample Size : 量化位数Number o…

Matlab进阶绘图第45期—蝴蝶气泡图

蝴蝶气泡图是一种特殊的柱泡图/气泡柱状图。 蝴蝶图一般由左右两个水平柱状图组合而成,其形如蝴蝶展翅,可以很直观地展示两种数据直接的差异。 而蝴蝶气泡图则是在两个水平柱状图每根柱子外侧额外添加大小不同的气泡,用于表示另外一个数据变…

使用IDEA2023创建传统的JavaWeb项目并运行与调试

日期:2024-0312 作者:dusuanyun 文档环境说明: OS:Deepin 20.9(Linux) JDK: OpenJDK21 Tomcat:10.1.19 IDEA: 2023.3.4 (Ultimate Edition) 本文档默认已经安装JDK及环境变量的配置。 关键词…

单片机设计-超声波视力保护仪的设计与实现

项目介绍 技术:C语言、单片机等 本设计利用超声波技术检测眼睛与书本的距离,调整看书位置,通过光敏检测判断环境光线强度是否适合阅读,并通过定时器设定阅读时长,以此解决人们由于看书姿势的错误,阅读环境…

Android11 FallbackHome启动和关闭流程分析

Android 7.0引入了新特性:Direct Boot Mode,设备启动后进入的一个新模式,直到用户解锁(unlock)设备此阶段结束。在这个模式下,系统调用 resolveHomeActivity 找到的是FallbackHome ,而不是我们的…

Python keyword-only参数

keyword-only 参数是Python 3中引入的一种新的参数语法。它允许您在定义函数时强制要求某些参数必须以关键字参数的形式传递。这种机制有助于提高代码的可读性和可维护性。 以下是 keyword-only 参数的语法: def function_name(arg1, arg2, *, kwarg1, kwarg2value):# 函数体…

Vscode screen 模式终端窗口查看历史信息

进入查看模式 ctrl a, [ 退出 ctrl c

CPU、GPU、IPU、NPU、TPU、LPU、MCU、MPU、SOC、DSP、FPGA、ASIC、GPP、ECU、

CPU: 中央处理器(Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。 它的功能主要是解释计算机指令以及处理计算机软件…

关于git提交代码时报错Committer identity unknown的解决方案

今天安装好git后,创建新项目,当git上传提交时出现了一个问题,如下: 解释 Commit failed - exit code 128 received, with output: *** Please tell me who you are. Run git config --global user.email "youexample.com&q…

什么是web3.0

Web 3.0是指下一代互联网的发展阶段,它是对当前Web 2.0的进化。Web 3.0的主要特点包括去中心化、区块链技术、智能合约以及数据隐私和安全性等方面的改进。与Web 2.0不同,Web 3.0旨在通过去中心化的方式实现更加开放、透明和安全的网络环境,让…

R语言数据挖掘-关联规则挖掘(1)

一、分析目的和数据集描述 要分析的数据是美国一区域的保险费支出的历史数据。保险费用数据表的每列分别为年龄、性别、体重指数、孩子数量、是否吸烟、所在区域、保险收费。 本文的主要目的是分析在年龄、性别、体重指数、孩子数量、是否吸烟、所在区域中这些因素中&#xf…

webpack5零基础入门-8清空前次打包文件与处理图标字体资源

1.配置output中的clean属性为true output: {/**文件输出路径 绝对路径*///__dirname 表示当前文件的文件夹目录path: path.resolve(__dirname, dist),//所有文件的输出目录/**文件名 */filename: static/js/dist.js,//入口文件输出文件名clean: true,//在打包前将path整个目录内…

android studio配置gradle

几次重配android studio环境都在gradle上浪费好多时间。这次记录一下: 下载并copy gradle-5.6.4-all.zip解压到一个目录,如"E:\dev_env\gradle-5.6.4",IDE中File - setting - Build,Ex... - Build-Tools - Gradle页,把…

SSM SpringBoot vue智能手机参数分析平台

SSM SpringBoot vue智能手机参数分析平台 系统功能 首页 图片轮播 新闻资讯 手机信息 手机百科 登录注册 个人中心 后台管理 登录注册 个人中心 手机百科管理 用户管理 手机对比管理 配置管理 新闻资讯管理 手机信息管理 对比信息管理 我的收藏管理 开发环境和技术 开发语言…

安卓国产百度网盘与国外云盘软件onedrive对比

我更愿意使用国外软件公司的产品,而不是使用国内百度等制作的流氓软件。使用这些国产软件让我不放心,他们占用我的设备大量空间,在我的设备上推送运行各种无用的垃圾功能。瞒着我,做一些我不知道的事情。 百度网盘安装包大小&…

爬虫 某物流

目标地址 url "https://api.jdl.com/aging/feeInquiryNewByJDL" 加密参数 ciphertext和data 搜关键字ciphertext跟着栈走 很明显的DES加密 window globalconst e require(jsencrypt); // const e require(JSEncrypt) // e r(775).JSEncrypt // const t requi…

MacOS安装Homebrew详细教程以及案例

MacOS安装Homebrew的详细教程如下: 一、准备工作 确认你的MacOS版本和硬件配置是否满足Homebrew的要求。确保你的Mac已经安装了Xcode命令行工具,因为Homebrew依赖这些工具进行安装和管理软件包。 二、安装Homebrew 打开终端(Terminal&…

《ARM汇编与逆向工程》读书心得与实战体验

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 一、引言 📝 二、…

信雅纳网络测试的二次开发集成:XOA(Xena Open-Source Automation)开源自动化测试

目录 XOA是什么 XOA CLI XOA Python API ​XOA Python Test Suite/测试套件 XOA Converter Source Code XOA是什么 XOA(Xena Open-Source Automation)是一个开源的测试自动化框架,追求“高效、易用、灵活”的跨操作系统的开发框架。能…