1.3 vue响应式对象
对象
在js里,对象一般指复杂类型,对象,数组,函数等都能被称为Object对象。
对象:{key:value,key2:value,…}
数组:[value1,value2,…]
简单数据类型响应式(ref)
在Vue3中,一般不写data(){},在组合式API的setup中写的数据let 数据名,不是响应式的,如果需要响应式,只需要在相应的数据上加上一个ref()外壳。
如:
let x = ref(2);
不过在模板中想用ref响应数据可以直接用,而在js中用,需要以x.value的形式访问到数据。
复杂数据类型响应式(reactive)
对于对象的响应式,外面加上一层reactive()就变成了响应式对象proxy()。无论多深都能响应。
如:
let obj = reative({name : '张三',gender:'男'
});
总结:
ref既可以处理简单类型也可以处理对象类型,推荐使用。不过对象类型底层是用reactive实现的响应式对象,ref的响应式对象都得需要.value才能摸到里面的数据。
复杂对象直接赋值
reactive响应式对象不能直接覆盖新的对象,需要借助函数
Object.assign(obj1,obj2);
ref响应式对象可以直接赋值新对象
obj1 = obj2