vue3中reactive和ref如何使用和区别

在Vue3中,reactiveref都是响应式API。它们都可以用于创建响应式数据和观察其变化。

区别:

ref函数需要传入一个初始值,并返回一个对象,该对象有一个value属性,可以直接读取和赋值。而reactive函数可以传入一个普通对象,并生成一个响应式对象,该对象可以直接读取和修改属性。

示例:

javascript 复制代码
import { reactive, ref } from 'vue'

// ref示例
const count = ref(0)
console.log(count.value) // 0
count.value++ // 直接对value属性进行赋值
console.log(count.value) // 1

// reactive示例
const state = reactive({
  count: 0,
  name: 'John'
})
console.log(state.count) // 0
state.count++ // 直接对属性进行赋值
console.log(state.count) // 1

ref函数适用于简单类型变量,比如数字、字符串等。而reactive函数适用于复杂类型变量,比如对象和数组。

示例:

javascript 复制代码
import { reactive, ref } from 'vue'

// ref示例
const age = ref(18)
const name = ref('John')
console.log(age.value, name.value) // 18 John
age.value++ // 直接对value属性进行赋值
name.value = 'Mary'
console.log(age.value, name.value) // 19 Mary

// reactive示例
const state = reactive({
  name: 'John',
  info: {
    age: 18,
    sex: '男'
  }
})
console.log(state.info.age, state.info.sex) // 18 男
state.info.age++ // 直接对属性进行赋值
state.name = 'Mary'
console.log(state.info.age, state.name) // 19 Mary

综上所述,refreactive在使用上有所区别,适用于不同的场景。ref适用于简单类型变量,而reactive适用于复杂类型变量。

相关推荐
EnCi Zheng8 分钟前
M5-markconv自定义CSS样式指南 [特殊字符]
前端·css·python
kyriewen12 分钟前
你的网页慢,用户不说直接走——前端性能监控教你“读心术”
前端·性能优化·监控
广州华水科技13 分钟前
北斗GNSS变形监测在大坝安全监测中的应用与优势分析
前端
前端老石人24 分钟前
前端开发中的 URL 完全指南
开发语言·前端·javascript·css·html
CAE虚拟与现实25 分钟前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
Sarvartha36 分钟前
三目运算符
linux·服务器·前端
晓晨的博客43 分钟前
ROS1录制的bag包转换为ROS2格式
前端·chrome
Wect1 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·typescript
donecoding1 小时前
别再让 pnpm 跟着 nvm 跑了!独立安装终极指南
前端·node.js·前端工程化
不可能的是1 小时前
从 /simplify 指令深挖 Claude Code 多 Agent 协同机制
javascript