Vue3 其它Composition API

一、shallowReactive 与shallowRef

1、shallowReactive: 只处理对象最外层属性的响应式(浅响应式)

2、shallowRef: 只处理基本数据类型的响应式,不进行对象的响应式处理

3、什么时候使用?

如果一个对象数据,结构比较深,但变化时只是外层属性变化 ===》shallowReactive

如果一个对象数据,后续功能不会修改该对象中的属性,而是生成新的对象来替换===》shallowRef

二、readonly与shallowReadonly

1、readonly:让一个响应式数据变成只读的(深只读)

2、shallowReadonly:让一个响应式数据变为只读的(浅只读)

3、应用场景:不希望数据被修改时

三、toRaw与markRaw

1、toRaw

作用:将一个reactive生成的响应式对象转为普通对象

使用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新

2、markRaw

作用:标记一个对象,使其永远不会再成为响应式对象

应用场景:

1、有些值不应被设置为响应式的,例如复杂的第三方类库等

2、当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能

四、customRef

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

代码:

五、provide与inject

1、作用:实现祖与后代组件间通信

2、套路:父组件有一个provide选项来提供数据,后代组件有一个inject选项来开始使用这些数据。

3、具体写法

1、祖组件中

javascript 复制代码
setup() {
    let car = reactive({name: '1', price: '2'})
    provide('car', car)
}

2、后代组件中

javascript 复制代码
setup(props, context) {
    const car = inject('car')
    return {car}
}

六、响应式数据的判断

isRef:检查一个值是否为一个ref对象

isReactive:检查一个对象是否是由reactive创建的响应式代理

isReadonly:检查一个对象是否由readonly创建的只读代理

isProxy:检查一个对象是否是由reactive或者readonly方法创建的代理

相关推荐
奇牙coding8 分钟前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
小羊没烦恼!15 分钟前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
程序员老赵17 分钟前
Docker 部署 Filestash:轻松搭建浏览器文件管理平台
前端·docker·开源
夏天要喝冰可乐19 分钟前
给 23 万字修仙小说造个阅读站:浏览器内打包 EPUB 分页阅读 + 三主题实战
前端·产品·全栈
茶底世界之下23 分钟前
林间步道要不要加暗角?用 Awaking 把强度收在20%
前端·ios·图片资源
执子念的飞鱼23 分钟前
纯前端预览 275 种文件格式是怎么做到的
前端·vue.js·react.js
行者全栈架构师34 分钟前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构
java1234_小锋36 分钟前
【技术专题】HTML5 网页技术 - HTML5 表单基础以及增强
前端·html·html5
燕落南枝40 分钟前
HTML 学习:辅助标签 label 与字符实体
前端·学习·html
不简说44 分钟前
AI 帮你画模板、点一下就云打印:sv-print 这三个月都干了啥
前端·javascript·人工智能