需求:
后端返回的数据是一个嵌套式数据(info),这些数据都需要在页面上进行渲染、修改; ->将其定义为一个响应式数据return出去;
但是呢有的数据使用比较频繁,比如 name(简单数据类型),soninfo(引用数据类型); 为了更方便使用 -> 定义为一个变量return出去
html
为了测试展示全部信息->{{info}}name:{{name}}
sonname:{{soninfo.name}}
js1
初次渲染没有问题;
当 点击“点我修改info.name”按钮时 页面内容无变化(即使数据已经改变了);
当 点击“点我修改soninfo.name”按钮时。页面内容能正常渲染;
采用直接赋值形式,为什么简单数据类型不能正常修改,而引用类型却可以正常修改呢?
// 定义一个变量let name = info.nameconsole.log(name) // 'xiangxiang'let soninfo = info.soninfo console.log(soninfo) // Proxy {name: 'niuniu', age: 24, grandinfo: {…}}
如果想要简单数据类型赋值应该怎样才能获取一个响应式数据呢?
—> 使用组合APItoRef函数
// 引入
import {reactive,toRef} from 'vue'// 使用
let 变量名 = toRef(reactive对象,属性名)
创建一个 ref 对象
,其value值指向另一个对象中的某个属性
;
当要将响应式对象中的某个值为简单数据
类型的属性单独提供给外部使用时就使用toRef;
导入中的例子使用toRef就可以实现了
为了测试展示全部信息->{{info}}name:{{name}}
sonname:{{soninfo.name}}