ref() 和 reactive() 区别

ops/2025/1/15 23:45:55/

ref() 和 reactive() 都是 Vue 3 中用于创建响应式数据的方法,但它们之间存在一些关键差异。

首先,ref() 用于创建响应式的标量值,比如数字、字符串、布尔值等基本数据类型,以及对象和数组等复杂数据类型。当你使用 ref() 时,你会得到一个带有 .value 属性的对象,这个对象是响应式的。例如:

const count = ref(0)

这里的 count 是一个响应式的 ref 对象,你可以通过 count.value 来访问和修改它的值。

而 reactive() 用于创建响应式的对象和数组。它接受一个对象或数组,并返回一个响应式的代理对象。例如:

const state = reactive({ count: 0 })

这里的 state 是一个响应式的对象,你可以直接访问和修改它的属性,如 state.count

所以,主要的区别在于:

  1. 用途

    • ref():适用于各种数据类型,包括基本类型和引用类型。

    • reactive():仅适用于对象和数组。

  2. 访问和修改

    • ref():通过 .value 属性访问和修改值。

    • reactive():直接访问和修改对象的属性。

  3. 嵌套数据的响应式

    • ref():如果内部包含对象或数组,需要递归地使用 ref() 或 reactive()

    • reactive():自动处理嵌套对象和数组的响应式。

  4. 性能

    • reactive():对于大量数据的对象,性能可能优于使用多个 ref()

总之,根据你的数据类型和需求,你可以选择使用 ref() 或 reactive() 来创建响应式数据。对于基本类型和单个值,ref() 是一个好选择;对于复杂的对象和数组,reactive() 更为适合。

示例

使用 ref()

import { ref } from 'vue'

export default {

setup() {

const count = ref(0)function increment() {count.value++}return {count,increment}

}

}

使用 reactive()

import { reactive } from 'vue'

export default {

setup() {

const state = reactive({ count: 0 })function increment() {state.count++}return {count: state.count,increment}

}

}


http://www.ppmy.cn/ops/150415.html

相关文章

了解Webpack:现代前端开发的静态模块打包器

在现代前端开发中,Webpack已成为不可或缺的工具之一。作为一个静态模块打包器(module bundler),Webpack通过分析和处理项目中的资源依赖关系,将它们打包成一个或多个bundle(捆绑包),…

【Linux】9.Linux第一个小程序进度条

文章目录 Linux第一个小程序-进度条相关知识创建程序1. 程序原理2. 基础程序原理实现 井号进度条代码实现箭头进度条代码实现多重进度条代码实现 Linux第一个小程序-进度条 相关知识 特殊符号: $ 和 $^ 回车换行: 回车和换行其实…

STM32程序发生异常崩溃时,怎样从串口输出当时的程序调用栈等信息

当STM32程序发生异常崩溃时,为了从串口输出当时的程序调用栈信息,并使用Keil等工具确定具体的函数信息,你可以按照以下步骤操作: 启用调试信息输出: 在STM32程序中,你需要先确保启用了调试信息的输出。这通…

微信小程序-Docker+Nginx环境配置业务域名验证文件

在实际开发或运维工作中,我们时常需要在 Nginx 部署的服务器上提供一个特定的静态文件,用于域名验证或第三方平台验证。若此时使用 Docker 容器部署了 Nginx,就需要将该验证文件正确地映射(挂载)到容器中,并…

iOS - Objective-C语言的动态性

Objective-C 的动态性主要由以下几个关键特性和机制支撑: 1. 动态消息传递 // 消息传递机制 id objc_msgSend(id self, SEL _cmd, ...) {// 1. 获取类信息Class cls object_getClass(self);// 2. 查找方法实现IMP imp lookUpImpOrForward(cls, _cmd);// 3. 执行…

ip属地出省会变吗?怎么出省让ip属地不变

在数字化时代,IP属地作为网络身份的一个重要标识,不仅影响着我们的网络体验,还与网络安全、隐私保护等方面息息相关。当我们跨省移动时,是否会遇到IP属地变化的问题?如果希望保持IP属地不变,又该如何操作呢…

linux 网络安全不完全笔记

一、安装Centos 二、Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网 三、Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install –y Software b.使用 yum 更新软件 yum update –y Software c.使用 yum 移除软件 yum remove –y Software d.使用 yum …

用css和html制作太极图

目录 css相关参数介绍 边距 边框 伪元素选择器 太极图案例实现、 代码 效果 css相关参数介绍 边距 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}div{width: …