Vue3 ref 和 reactive 区别,一篇讲清用法和场景

0 阅读1分钟

ref 和 reactive 是 Vue3 最常用的响应式 API,面试中常问两者区别及使用场景,很多新手容易混淆,记住这几点就能轻松应答。

一、核心区别

适用数据类型不同:

ref:主要用于基本类型(数字、字符串、布尔值),也可用于复杂类型(对象、数组),但操作复杂类型时,本质还是依赖 reactive 实现。

reactive:仅用于复杂类型(对象、数组),不能用于基本类型(会报错或失去响应式)。

操作方式不同:

ref:操作数据时,必须通过 .value 访问和修改(模板中使用时,Vue 会自动解析 .value,无需手动写)。

reactive:操作数据时,直接访问和修改属性,无需 .value,但不能直接给 reactive 对象整体赋值(会破坏响应式)。

二、使用场景

用 ref:表单输入值(如 input 的 value)、独立的简单值(如计数 count、开关 isShow)。

用 reactive:组件的状态对象(如 user、formData)、数组数据(如列表 list)。

面试小技巧:可举例说明,比如“定义一个计数用 ref,定义一个用户信息对象用 reactive”,让回答更具体。

——个人观点 · 仅供参考——