之前我们的案例中
修改person对象 而且setup return 一个 person 会发现模板中都需要重复写person
然后如果你直接在return上进行数据的处理,就会发现数据都丢失了响应式
其实很简单,就是这边的person.name就是一个基本类型数据了,当它被赋值到另一个数据上,那个数据发生改变也会对源数据发生更改
这时我们就要用到toRef了 就是要把一个不是ref的东西变成ref的东西
给不是ref对象使用会生成一个对应的ref对象
所以我们可以这样写
这边要注意如果再次使用ref就相当于在自己创建了一个ref对象,进行响应式,也就是person源数据不会跟着响应
然后你会发现一个问题如果使用ref 如果想把对象里面的所有属性进行给进行响应,就会写很多代码
解决:使用refs只需要一个参数
即会把对应的引用对象里面的属性,都会变成一个个的ref对象,就是实现了数据的响应
此时我们联合扩展运算符
由于我们知道torefs返回的是一个对象里面有许多个ref对象(只有对象中第一层的属性),所以我们只需要...把它展开
注意的是
这样写在模板中可以直接写的是对象中的第一层数据
而之后的数,还是需要.的方式进行读取,不能直接写