丹东建设工程信息网站,吉安哪里做网站,郑州高端网站定制建设,菜市场做建筑设计图库的网站设计前言
为了让vue3中的数据变成响应式#xff0c;需要使用ref,reactive函数
ref函数使用方式 导入ref函数 import {ref} from vue在setup函数中#xff0c;将需要响应式的数据通过ref函数进行包装#xff0c;修改响应式数据时#xff0c;需要通过: ref包装的响应式对象.val…前言
为了让vue3中的数据变成响应式需要使用ref,reactive函数
ref函数使用方式 导入ref函数 import {ref} from vue在setup函数中将需要响应式的数据通过ref函数进行包装修改响应式数据时需要通过: ref包装的响应式对象.value 修改后的数据这种形式进行修改 export default {name: App,components: {......},setup(){//数据定义let name ref(张三)let age ref(18)let job ref({type:前端工程师,salary:30k})//定义函数function changeInfo(){name.value 李四age.value 1job.value.type 后端工程师job.value.salary 50k/*console.log(name,age)*/}//setup必须有返回值,将上述定义的响应式数据以及函数进行返回return {name,age,job,changeInfo}}
}reactive函数使用方式 导入reactive函数 import {reactive} from vuereactive函数用于处理对象类型以及数组类型的响应式数据ref处理对象类型的数据也借助了reactive的帮助,并且处理后返回的对象不需要使用.value后缀,用法模板为: const 代理对象 reactive(源对象),该代理对象实质上是Proxy的实例对象 export default {name: App,components: {},setup(){//数据定义/*为了方便起见可以将之前定义的数据整合到一个对象中这样即方便管理也可以统一由reactive函数处理*/let person reactive({name : 李四,age:18,job:{type:前端工程师,salary:60k},hobbies:[抽烟,喝酒,烫头]})//定义函数function changeInfo(){person.name 王五person.age1person.job.type后端工程师person.job.salary50kperson.hobbies[0] 学习}//setup必须有返回值return {person,changeInfo}}
}reactive对比ref总结
从定义数据角度对比 ref用来定义基本类型数据 reactive用来定义对象或数组类型数据 备注ref也可以用来定义对象或数组类型数据它内部会通过reactive转为代理对象从原理角度对比 ref通过Object.defineProperty()的get()与set()来实现响应式数据劫持 reactive通过Proxy来实现响应式数据劫持并通过Reflect操作源对象内部数据从使用角度对比 ref定义的数据操作数据需要附带.value读取数据时从模板中直接读取不需要.value reactive定义的数据操作数据与读取数据均不需要.value