Vue中reactive()和ref()两种变量区别

一句话总结

reactive():用于对象或数组,返回的是一个原始对象的响应式代理(无需 .value)。
ref():用于基本类型值(字符串、数字、布尔等)或单个对象引用,返回的是一个带 .value 属性的响应式对象。

基本区别对比

特性ref()reactive()
适用类型基本类型 / 引用类型仅引用类型(对象、数组)
访问值需要 .value直接访问属性
返回值包含 .value 的对象原始对象的响应式代理
响应式深度深层响应式深层响应式
结构透明度包装一层不包装(直接操作)

使用示例

ref()-用于基本类型

import { ref } from 'vue'

const count = ref(0)

console.log(count.value)  // 访问值
count.value++             // 修改值

reactive()-用于对象类型

import { reactive } from 'vue'

const state = reactive({
  count: 0,
  name: 'Vue'
})

console.log(state.count)  // 直接访问属性
state.count++             // 修改属性

什么时候用哪个

需求用哪个?原因
单个数值、字符串、布尔值等ref()基本类型不能直接 reactive()
对象、数组、嵌套结构reactive()操作更方便,结构清晰
引用类型 + 需要赋值整体对象ref()reactive() 不能直接被替换
想要 .value 的可控性(如表单元素双向绑定)ref()Vue 会自动解包 .value
在模板中访问都可以Vue 模板中会自动解包 .value
更多好玩意请到主页瞧瞧
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇