在 Vue 3 中,shallowReactive、shallowRef、ref 以及 reactive 是 Vue 提供的用于处理响应式数据的函数。它们在处理对象和嵌套对象时表现不同。
ref 和 reactive:
ref 用于创建一个基本数据类型的响应式引用,例如数字、字符串等。
reactive 用于创建一个完全响应式的对象,包括对象内部的所有嵌套属性。
import { ref, reactive } from 'vue'; const numberRef = ref(42); // 创建基本数据类型的响应式引用 const objectReactive = reactive({ prop: 'value' }); // 创建完全响应式的对象
shallowRef 和 shallowReactive:
shallowRef 用于创建一个包装对象的响应式引用,但是它不会递归地转换对象内部的属性为响应式,只会处理对象的第一层。
shallowReactive 用于创建一个仅处理对象第一层的响应式对象。
import { shallowRef, shallowReactive } from 'vue'; const shallowNumberRef = shallowRef({ prop: 'value' }); // 创建包装对象的响应式引用,只处理第一层属性 const shallowObjectReactive = shallowReactive({ prop: 'value' }); // 创建仅处理第一层的响应式对象所以,主要区别在于处理嵌套对象时的深度。如果你只关心对象的第一层属性,而不需要递归地处理嵌套属性,可以使用 shallowRef 或 shallowReactive。如果需要递归地处理对象内部的所有属性,你可以使用 ref 或 reactive。
网友回复
js如何流式输出ai的回答并折叠代码块,点击代码块右侧可预览代码?
ai大模型如何将文章转换成可视化一目了然的图片流程图图表?
大模型生成html版本的ui原型图和ppt演示文档的系统提示词怎么写?
rtsp视频直播流如何转换成websocket流在h5页面上观看?
为啥coze会开源工作流agent coze studio?
如何检测网页是通过收藏夹打开的?
python如何实现类似php的http动态脚本请求处理响应代码?
js如何实现类似php的http动态脚本请求处理响应代码?
trae与solo有啥区别不同?
vue如何让ai动态生成问卷调查多步骤表单式收集基础信息自动规划执行任务?