iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Vue3.0 API中如何使用markRaw
  • 125
分享到

Vue3.0 API中如何使用markRaw

2024-04-02 19:04:59 125人浏览 薄情痞子
摘要

这篇文章主要介绍“vue3.0 api中如何使用markRaw”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3.0 API中如何使用markRaw”文章能帮助

这篇文章主要介绍“vue3.0 api中如何使用markRaw”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3.0 API中如何使用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 转换可以提高性能。

这些例子是进阶的运用,因为原始选择退出仅在根级别,因此,如果将嵌套在内的、未标记的原始对象添加进响应式对象,然后再次访问该响应式对象,就会得到原始对象被代理后的版本。这可能会导致同一性风险&mdash;&mdash;即执行一个依赖于对象本身的操作,但同时使用同一对象的原始版本和被代理后的版本:

<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,同时安全地避免同一性风险,就需要对响应性系统的工作原理有一个充分的理解。

关于“Vue3.0 API中如何使用markRaw”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网node.js频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Vue3.0 API中如何使用markRaw

本文链接: https://www.lsjlt.com/news/89406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作