本页目录
ref 的意思是引用,reference。
用来定义常用的基础类型(String,Number,Boolean 等等)
ref() 创建的响应式数据后会返一个响应式的对象。
属性的值需要用 .value 才能访问到,value 返回的是 Proxy

将值封装在一个对象中,看似没有必要,但为了保持 JavaScript 中不同数据类型的行为统一,这是必须的。这是因为在 JavaScript 中,Number 或 String 等基本类型是通过值而非引用传递的
使用
接受一个内部值并返回一个响应式且可变的 ref 对象,在 setup 函数内部访问 ref 函数需要加.value, 如果要加类型,要用泛型,不加则会类型推论,也可以不给初始值,则是 any,且是 undefined:
const ref1 = ref(1);const ref2 = ref<number>(2);const ref3 = ref1.value;//不是响应式,相当于变量const ref4 = ref();//refs.value是undefinedref2.value = 5;//赋值 读取都要.value一般来说,ref 只会赋值基础数据类型和数组,也可以泛型联合类型 如果将对象分配为 ref 值,则它将被 reactive 函数处理为深层的响应式对象:
//不建议,内部也是reactive处理const ref1 = ref({ a: 10,});
//不确定类型const ref3 = ref<string | number>();ref3.value = 1;ref3.value = "";
//数组对象,ts类型声明,用泛型type Obj1 = { c: string };type Obj2 = { b: string; c: Obj1[];};const ref2 = ref<Obj2[]>([ { b: "", c: [{ c: "" }], },]);