vue一定要用到的两兄弟

31 阅读1分钟

一. 概念定义差异

ref:响应式编程中的基础引用类型,通过.value访问包装值,适用于单个原始值的响应式跟踪(如字符串、数字)

const count = ref(0) // 显式声明响应式基础类型

reative(通常指Vue3的reactive):面向复杂对象结构的深度响应式API,自动解包嵌套属性

const user = reative({ name: '张三', profile: { age: 25 } // 嵌套对象自动响应 })

二. 核心特性对比

维度refreative
数据层级单层值包装深层对象代理
访问方式需要.value语法糖直接属性访问
TS支持完善的类型推断需要手动定义复杂类型
内存开销轻量级包装器完整的Proxy代理树

三. 典型使用场景

ref的黄金法则

1、表单输入绑定(文本/数字)

<input v-model="username.value">

2、组件模板引用

<ChildComponent ref="childComp" />

3、需要显式控制响应触发的场景

reative的最佳实践

1、复杂状态管理(如用户信息对象)

const store = reative({ cartItems: [], paymentMethod: 'alipay' })

2、API响应数据嵌套处理

fetch('/api').then(res => { Object.assign(data, res) // 保持响应性 })

3、需要深度监听的配置对象

四. 混合使用策略

建议采用ref处理基础类型+reative管理对象状态的组合模式:

const appState = reative({ loading: ref(false), // 基础状态 config: { theme: 'dark' } // 复杂配置 })