Vue3的ref、reactive、toRefs、toRef响应式


首先:ref和reactive都是用来声明响应式数据的。

??他们的区别在于,ref用于声明基本数据类型,而reactive用于声明引用类型数据,虽然reactive也是可以传递基础数据类型,但数据类型不会被包装成响应式数据

??以下代码为reactive的基本使用:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓


 

 ??以下代码为ref的基本使用:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

PS:注意通过ref声明的变量,所以js要修改对应的值是要通过.value访问才可以,template模板不需要通过.value访问

toRefs 和 toRef 不会创造响应式,而是会延续响应式 ??
let { name } = toRefs({ name: "你好" });//此处的toRefs中的参数并非响应式数据

let { age } = toRefs(obj);//此处的toRefs中的参数是响应式数据

当toRefs的参数并非响应式数据时,其解构出来的数据并非响应式数据,只有参数为响应式数据时,其解构出来的数据才会是响应式数据,toRef同理。