Vue3 学习 6

其他API

【shallowRef与shallowReactive】

shallowRef

1.作用:创建一个响应式数据,但只对顶层属性进行响应式处理

2.用法:

复制代码
	let myVar = shallowRef(initialValue);

3.特点:只跟踪引用值的变化,不关心值内部的属性变化
shallowReactive

1.作用:创建浅响应式对象,只会使对象的最顶层属性变成响应式的,对象内部的嵌套属性则不会变成响应式的

2.用法:

复制代码
	const myObj = shallowReactive({...})

3.特点:对象的顶层属性是响应式的,但嵌套对象的属性不是

【readonly与shallowReadonly】

readonly

1.作用:用于创建一个对象的深只读副本

2.用法:

复制代码
	const original = reactive({....})
	const readOnlyCopy = readonly(oringal);

3.特点:

  • 对象的所有嵌套属性都将变为只读
  • 任何尝试修改这个对象的操作都会被阻止
    4.应用场景:
  • 创建不可变的状态快照
  • 保护全局状态或配置不可修改

** shallowReadonly**

1.作用:与readonly类似,但只作用于对象的顶层属性

2.用法:

复制代码
	const original = reactive({...});
	const shallowReadOnlyCopy = shallowReadonly(original);

【toRaw与markRaw】

toRaw

1.作用:用于获取一个响应式对象的原始对象,toRaw返回的对象不再是响应式的,不会触发试图更新

在需要响应式对象传递给非Vue的库或外部系统时,使用toRaw可以确保他们收到的是普通对象

markRaw

1.作用:标记一个对象,使其永远都不会变为响应式的

例如使用mockjs时,为了防止误把mockjs变为响应式对象,可以使用markRaw去标记mockjs

【customRef】

作用:创建一个自定义的ref,并对其依赖项跟踪和更新触发进行逻辑控制

相关推荐
天天向上vir2 小时前
防抖与节流
前端·typescript·vue
找方案2 小时前
我的 hello-agents 学习笔记:框架开发实践,从调用到玩转的进阶之路
人工智能·笔记·学习·hello-agents
青w韵2 小时前
最新SpringAI-1.1.2接入openai兼容模型
java·学习·ai·springai
222you2 小时前
SpringMVC的单文件上传
java·开发语言
宇珩前端踩坑日记2 小时前
怎么让 Vue DevTools 用 Trae 打开源码
前端·trae
CreasyChan2 小时前
C#中单个下划线的语法与用途详解
前端·c#
C_心欲无痕2 小时前
react - useState更新机制(直接更新和函数式更新)
前端·javascript·react.js
GDAL2 小时前
Tailwind CSS 菜单实现全面讲解教程(基于书签篮网站场景)
前端·css·菜单
m5655bj2 小时前
如何通过 C# 实现 PDF 页面裁剪
前端·pdf·c#