上一篇:

vue3 readonly&shallowReadonlyhttps://blog.csdn.net/qq_42543244/article/details/122772194本片继续记录vue3的新特性 toRaw & markRaw

简单来说,toRaw:返回 reactive 或 readonly 代理的原始对象,当我们去改变原始对象,页面是不是刷新的,因为数据不是proxy响应式代理的。

markRaw:去标记一个对象,让它永远不会转换为proxy;

示例:

<template><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><h2>爱好:{{ hobby }}</h2><h2>工作薪酬:{{ job.j1.money }} K</h2><h2>身份信息:{{ data.message }}</h2><button @click="name = '李四'">改变姓名</button><button @click="age += 1">改变年龄</button><button @click="hobby[1] = '看比赛'">改变爱好</button><button @click="job.j1.money += 1">改变薪酬</button><button @click="getOriginalData">获取原始数据</button><button @click="addPersonMessage">添加身份信息</button><button @click="changePersonMessage">修改身份信息</button>
</template><script>
import { markRaw, reactive, toRaw, toRefs } from "vue";
/* toRaw:返回 reactive 或 readonly 代理的原始对象。这是一个“逃生舱”,可用于临时读取数据而无需承担代理访问/跟踪的开销,也可用于写入数据而避免触发更改。不建议保留对原始对象的持久引用。请谨慎使用。使用场景:用于读取响应式对象对应的普通对象,对这个普通对象进行的所有操作都不会引起页面的更新markRaw:标记一个对象,使其永远不会转换为 proxy。返回对象本身应用场景:1.有些值不应该去设置成响应式的,比如第三方的类库2.当需要去渲染不可变的大量数据源时,跳过响应式转换可以获得更好的性能*/
export default {name: "Demo",setup() {let data = reactive({name: "张三",age: 18,hobby: ["打篮球", "听音乐", "玩游戏"],job: {j1: {money: 10,},},});function getOriginalData() {let originalData = toRaw(data);originalData.age++; //originalData的age一直在变化,但是页面不会有任何变化console.log(originalData);}// 这里我们想要去添加一个人的身份信息,身份证信息,我们的身份证号肯定是永远不变的吧!function addPersonMessage() {// data.message = { idNumber: "411121199711111234" };// 对一个对象进行markRaw标记,让这个对象永远不会成为proxydata.message = markRaw({ idNumber: "411121199711111234" });}function changePersonMessage() {data.message.idNumber = "41112119971111123X";}return {data,  ...toRefs(data),getOriginalData,addPersonMessage,changePersonMessage,};},
};
</script>

下一篇:

vue3 customRef的使用https://blog.csdn.net/qq_42543244/article/details/122815091

13.0 vue3 toRawmarkRaw相关推荐

  1. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通

    尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...

  2. Ubuntu 14.04 64位上安装Valgrind 3.13.0 操作步骤

    关于Valgrind的介绍和使用可以参考: http://blog.csdn.net/fengbingchun/article/details/50196189 在Ubuntu 14.04上可以通过以 ...

  3. 「biáng biáng 面」马上可以打出来了!Unicode发布13.0版本,收录4939个生僻字

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 有一种面条,很多人吃过,但 ...

  4. TensorFlow 1.13.0 正式发布,谷歌开源的机器学习框架

    TensorFlow 1.13.0 已正式发布,TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow 的表现比第一代的 DistBelief 快了 2 ...

  5. VS2015编译MuPDF 1.13.0源码(详细)

    前言 要想对PDF进行二次开发,那么MuPDF一定是首选,MuPDF 上的呈现器专为高质量的抗失真图像量身打造,它以像素级的精度高品质呈现文字和文字间的间距,从而获得最高级别的显示保真度,在设备屏幕上 ...

  6. NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置

    引言 DIGITS简介 DIGITS特性 资源信息 说明 DIGITS安装 软硬件环境 硬件环境 软件环境 操作系统安装 DIGITS安装前准备 安装CUDA70deb方式 安装cuDNN70 安装C ...

  7. 官宣|Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!

    简介:Flink 1.13.0 版本让流处理应用的使用像普通应用一样简单和自然,并且让用户可以更好地理解流作业的性能. ​翻译 | 高赟 Review | 朱翥.马国维 GitHub 地址 https ...

  8. Geary 0.13.0 发布,GNOME 3 Email 客户端应用

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Geary 0.13.0 发布了,Geary 是一个电子邮件应用,用于 GNOME 3 桌面版本,它允许阅读.查找和发送电子,并 ...

  9. Scala-2.13.0 安装及配置

    Scala 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. Scala 运行在Java虚拟机上,并兼容现有的Java程序 ...

最新文章

  1. SOA架构下的人事信息管理系统的构建与分析
  2. 一个从源代码里提取中文字符串的java类
  3. android跑分和ios,手机:苹果VS安卓 跑分不代表手机流畅度
  4. 分区变为RAW的解决办法
  5. 为你的应用程序添加动态Java代码
  6. 傅里叶变换的相关函数(笔记02)
  7. Android平台的通话计时源码
  8. 教你如何选择弱电工程中使用的交换机?
  9. 【动画消消乐 】一个小清新类型的全局网页过渡动画 075
  10. Sublime Text 3 配置C语言运行环境
  11. GRUB4DOS(十) 关于grldr.mbr和grldr
  12. 网站友情链接交换的方法
  13. 8、MySQL Workbench导入数据库提示Failed to open required defaults file:xxx.cnf
  14. 公众号500篇文章分类和索引
  15. 中华传统文化节日网页设计制作 简单静态HTML网页作品 二十四节气网页作业成品
  16. 国内小程序生态服务平台即速应用完成5000万元A+轮融资...
  17. 三周年课程促销中奖名单公布!赶紧来看看有没有你!
  18. TensorFlow实践(15)——使用tf.device方法指定节点执行设备
  19. 建“数字风洞”,永信至诚开启安全测试评估专业赛道
  20. 手把手教你 Tableau 绘制凹凸图(二十八)

热门文章

  1. 计算机配置主要看哪些东西,买电脑主要看什么配置怎么配置(教你看懂电脑各种配置)...
  2. win10系统下配置jupter的文件路径
  3. mysql操作中 出现You can‘t specify target table for update in FROM clause错误的解决方法
  4. for循环执行流程面试题(经典)
  5. PHP,mysql会话列表获取聊天记录最后一条以及未读消息条数
  6. jQuery的click点击方法合集
  7. 二项式与小苹果——看牛顿如何将灵感火花拓展成知识体系
  8. 牛客网阶乘怪物C语言,【题集】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)(示例代码)...
  9. focas2 fanuc发那科数控系统数据采集刀具DNC程序管理源代码
  10. 匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4