当前位置: 首页 > article >正文

Vue3-toRaw 和 markRaw 函数

Vue3-toRaw 和 markRaw 函数

  • toRaw(转换为原始):将响应式对象转换为普通对象,只适用于 reactive 生成的响应式对象。
  • markRaw(标记为原始):标记某个对象,让这个对象永远都不具备响应式。一些集成的第三方库,会有大量的只读列表,不让其具备响应式是一种性能优化。

在这里插入图片描述

// App.vue toRaw 函数
<template>
    <h2>计数器1{{data.counter1}}</h2>
    <button @click="data.counter1++">计数器加1</button><br>
    <button @click="getRawObject">data原始对象</button>
</template>

<script setup>
    import { reactive, toRaw } from 'vue'
    let data = reactive({
        counter1 : 1
    })

    function getRawObject(){
        let rawObj = toRaw(data)
        // 修改原始对象,不会具有响应式
        rawObj.counter1++
        console.log('原始对象', rawObj);
    }
</script>

在这里插入图片描述

// App.vue markRaw 函数
<template>
    <h2>计数器1{{data.x}}</h2>
    <button @click="data.x.counter1++">计数器11</button><br>
    <button @click="addX">扩展x属性</button>
</template>

<script setup>
    import { markRaw, reactive } from 'vue'
    let data = reactive({})

    function addX(){
        // 加上markRaw可以去除响应式
        data.x = markRaw({counter1 : 1})
    }
</script>

http://www.kler.cn/a/149190.html

相关文章:

  • vue2使用 <component> 标签动态渲染不同的表单组件
  • Go八股(Ⅴ)map
  • 【Linux】HTTP协议和HTTPS加密
  • 【项目组件】第三方库——websocketpp
  • 研究生如何远控实验室电脑?远程办公功能使用教程
  • [JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
  • js相同字符串截取拼接
  • 牛客剑指offer刷题位运算篇
  • 八股文-如何理解Java中的多态
  • 管理后台系统,springboot+redis+nginx+html+bootstrap
  • UE5 中的computer shader使用
  • C++ 背包理论基础01 + 滚动数组
  • 【MySql】14- 实践篇(十二)-grant权限/分区表/自增Id用完怎么办
  • HassOS使用nmcli设置静态IPv4地址及网关、DNS
  • 对支付宝进行测试用例分析
  • .sketch的文件转.psd文件
  • Linux僵死进程及文件操作
  • 【ARM CoreLink 系列 8 -- SMMU 详细介绍-上半部】
  • 《微信小程序开发从入门到实战》学习三十六
  • springboot实战之stream API应用过滤不符合条件的数据
  • MySQL巧用公用表表达式(CTE)处理递归查询
  • 想学计算机视觉入门的可以看过来了
  • 牛客算法题 HJ100 等差数列 golang语言实现
  • QT配合CSS隐藏按钮
  • Springboot_文件下载功能(前端后端)
  • Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性