首页 / 知识
Vue3.0API介绍中 markRaw 使用示例
2023-04-11 13:23:00

Vue3.0API介绍中 markRaw 使用示例
markRaw
标记一个对象,使其永远不会转换为 proxy。返回对象本身。
<script setup>
import { markRaw, reactive, isReactive } from "vue";
const foo = markRaw({})
console.log(isReactive(reactive(foo))) // false
// 嵌套在其他响应式对象中时也可以使用
const bar = reactive({ foo })
console.log(isReactive(bar.foo)) // false
</script>
重要
markRaw 和下方的 shallowXXX API 使你可以有选择地退出默认的深度响应式/只读转换模式,并将原始的,未被代理的对象嵌入状态图中。它们可以根据情况灵活运用:
有些值不应该是响应式的,例如复杂的第三方类实例或 Vue 组件对象。
当渲染具有不可变数据源的大列表时,跳过 proxy 转换可以提高性能。
这些例子是进阶的运用,因为原始选择退出仅在根级别,因此,如果将嵌套在内的、未标记的原始对象添加进响应式对象,然后再次访问该响应式对象,就会得到原始对象被代理后的版本。这可能会导致同一性风险——即执行一个依赖于对象本身的操作,但同时使用同一对象的原始版本和被代理后的版本:
<script setup>
import { markRaw, reactive, isReactive } from "vue";
const foo = markRaw({
nested: {}
})
const bar = reactive({
// 虽然 `foo` 被标记为原始,但 foo.nested 不是。
nested: foo.nested
})
console.log(foo.nested === bar.nested) // false
</script>
同一性风险通常很少见。然而,为了正确地使用这些 API,同时安全地避免同一性风险,就需要对响应性系统的工作原理有一个充分的理解。
|
最新内容
相关内容
python判断dict中key是否存在
python判断dict中key是否存在,培训,通用,第一,字典,方法,结果,函数,属性,做法,上面,今天来说一下如何判断字典中是否存在某个key,一般有两种通python判断字符串是否包含中文
python判断字符串是否包含中文,培训,检测,代码,字符串,中文,字符,范围,空格,原理,以上,原理:中文字符的编码范围是:\u4e00-\u9fff只要编码在python如何匹配中文
python如何匹配中文,培训,中文,正则,大学,字符,范围,形式,以上,版本,结果,python中文字符的编码范围是:\u4e00-\u9fa5使用正则匹配中文#-*-cpython中如何让打印不换行
python中如何让打印不换行,培训,灵活,对象,函数,参数,文件,空格,结尾,字符,结束,python3中如何让打印不换行的方法:我们在使用print()函数时,并python如何使用return语句
python如何使用return语句,地址,位置,情况,培训,函数,分析,控制权,地方,变量,语句,return语句就是讲结果返回到调用的地方,并把程序的控制权一python函数的高级使用方法
python函数的高级使用方法,代码,函数,灵活,数据,培训,时间,定义,程序,赋值,变量,Python的函数是“一等公民”,因此函数本身也是一个对象,函数既python如何使用python发送邮件和接
python如何使用python发送邮件和接收邮件?,培训,状态,信息,代码,号码,工作,邮件,函数,尺寸,模块,发邮件是大家工作中最常用到的。今天来看一python怎么判断key是否在字典中
python怎么判断key是否在字典中,培训,第一,通用,字典,方法,结果,函数,属性,做法,里面,在python中,判断某个key是否在字典中,一般有两种通用做法python如何实现对Python中列表的排
python如何实现对Python中列表的排序?,培训,工作,实例,方法,关键字,对象,函数,以上,列表,表达式,对List进行排序,Python提供了两个方法方法1.python在python中如何同时给多个变
python在python中如何同时给多个变量赋值?,培训,连续,名称,赋值,变量,函数,模块,整数,定义,常量,同时赋多个值以下是一种很酷的编程捷径:在Pytpython如何使用import
python如何使用import,培训,代码,模块,位置,标准,语句,函数,作用,方法,语法,python中的import语句是用来导入模块的,在python模块库中有着大量python详解python中单引号,双引号,多
python详解python中单引号,双引号,多引号区别,培训,字符串,表示,区别,引号,注释,详解,下面,原因,字符,先说1双引号与3个双引号的区别,python双引