主要观点总结
文章介绍了Vue3中一些实用但较为冷门的API,包括readonly、shallowRef、shallowReactive、toRef、toRefs、toRaw、markRaw、unref、effectScope及provide和inject等。这些API可以在特定情境下提高开发效率和性能优化。
关键观点总结
关键观点1: readonly:用于保护数据不被外界修改,只提供读取功能,不触发响应式更新。
常用于包裹hooks暴露的变量,确保内部逻辑不受影响。
关键观点2: shallowRef和shallowReactive:用于包裹基础类型或引用类型,修改外层不触发响应式更新,修改内层虽然能改变数据但不会立即触发视图更新。
适用于大型数据,可以减少不必要的响应式更新,提高性能。
关键观点3: toRef和toRefs:用于解决在使用reactive时解构数据导致的响应性问题,使修改原数据能够触发相应视图的更新。
适用于需要将解构后的基础类型重新绑定到原数据的情况。
关键观点4: toRaw、markRaw和unref:toRaw用于将响应式对象转换为普通对象;markRaw用于标记响应式对象中的某个属性不被追踪;unref相当于返回ref的value。
这些API可以在特定情况下方便数据处理和传递。
关键观点5: effectScope:用于收集副作用和全局状态管理,在组件销毁时自动清除副作用,可用于性能优化和全局状态管理。
可以结合onScopeDispose进行更精细的控制和管理。
关键观点6: provide和inject:用于组件间的数据提供和注入,适用于层级较多的组件间数据共享,如表单组件中的规则、字段名、字段值共享。
这两个API为组件间的数据交互提供了方便的解决方案。
文章预览
总结了十个Vue3超级实用但是很冷门的API 前言 大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~ 今天给大家分享几个很少人用,但是又非常有用的 Vue3 的 API,废话不多说,往下看吧~ 文章提示:下文的 无效 不触发视图 不触发响应式更新 不被追踪 这些词汇,想表达的意思是一样的,意思都是 不被追踪 readonly 顾名思义,就是只读的意思,如果你的数据被这个 API 包裹住的话,那么修改之后并不会触发响应式,并且会提示警告 readonly 的用途一般用于一些 hooks 暴露出来的变量,不想外界去修改,比如我封装一个 hooks,这样去做的话,那么外界只能用变量,但是不能修改变量,这样大大保护了 hooks 内部的逻辑~ shallowRef shallowRef 用来包住一个基础类型或者引用类型,如果是基础类型那么跟 ref
………………………………