toRaw使用场景

ref/reactive数据类型每次修改都会被追踪,都会更新UI界面,但是这样是非常消耗性能的,所以如果我们有一些操作不需要追踪,不需要更新UI界面,那么这个时候我们就可以通过toRaw方法拿到它的原始数据,对原始数据进行修改,这样就不会被追踪,这样就不会更新UI界面,这样性能就好了。

reactive:

  setup() {let obj={name:'lj',age:18}let state=reactive(obj)let obj2=toRaw(state)   console.log(obj===obj2); //truefunction myFn(){obj2.name='zs'console.log(state); //Proxy {name: "zs", age: 18}console.log(obj2);  //{name: "zs", age: 18}}return {myFn,state}},

ref:

  setup() {let obj={name:'lj',age:18}let state=ref(obj)let obj2=toRaw(state.value)   console.log(obj===obj2); //truefunction myFn(){obj2.name='zs'console.log(state); console.log(obj2);  }return {myFn,state}},

运行结果:

这样虽然数据被修改,但是不会更新ui界面

vue3中toRaw使用相关推荐

  1. Vue3中使用Monaco Editor代码编辑器记录~持续更新

    Vue3中使用Monaco Editor代码编辑器记录-持续更新 因为毕设需要用到代码编辑器,根据调研,我选择使用monaco-editor代码编辑器 前端框架使用Vue3 + elementUI m ...

  2. web前端培训分享:使用Dplayer实现Vue3中的视频及弹幕播放

    Dplayer是一款上手简单,功能强大的HTML5视频播放器,我们可以使用它,快速在普通HTML.Vue.React中实现视频播放的功能需求.Dplayer同时也提供了目前各大视频站都在使用的弹幕功能 ...

  3. 中input怎么接受后台传值_[vue3]如何在vue3中优雅地使用vmodel?

    Vue中的数据绑定 绑定数据有三种方式: 插值,也就是{{name}}的形式,以文本的形式和实例data中对应的属性进行绑定 v-bind v-model v-bind eg:v-bind:class ...

  4. Webpack的代码分包Vue3中定义异步组件分包refs的使用

    一.默认的打包过程: 默认情况下,在构建整个组件树的过程中,因为组件和组件之间是通过模块化直接依赖的,那么webpack在打包时就会将组件模块打包到一起(比如一个app.js文件中): 这个时候随着项 ...

  5. vue3中v-model的重大更新

    一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件 Vue.component('custom-input', {props: ['value'],te ...

  6. vue3 中使用动画技术

    vue3 中使用动画技术 作者: jcLee95 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.21 ...

  7. Vue3中的父子、子父组件通信

    Vue3中的父子.子父组件通信方式总结 李俊才的CSDN博客 CSDN用户名:jcLee95 邮箱:291148484@163.com 1. 父组件 => 子组件 | 使用props 父组件(分 ...

  8. vue3中 v-md-editor 编辑器的基本使用分享

    vue3中 v-md-editor 编辑器的基本使用分享 安装 (2.3.15以上) # npm npm install @kangc/v-md-editor -S # yarn yarn add @ ...

  9. vue3中的provide/inject(提供/注入)

    vue3中的provide/inject(提供注入) 在说provide/inject先说一下prop逐级穿透问题. 通常我们从父组件向子组件传递数据时,会用到props.对于只需要传递一层或二层时还 ...

最新文章

  1. [JavaScript] 日期时间戳的使用与计算
  2. Java后端Java面试题总结2021(春招+秋招+社招)
  3. bpexpdate – 更改映像目录库中备份的截止日期以及介质目录库中介质的截止日期nbu...
  4. oracle之分析函数over及开窗函数
  5. 计算机组成原理 — CPU — 主存访问
  6. mybatis plus关联查询_Mybatis 和 Hibernate 持久层框架之间的区别是啥?
  7. Python词频分析
  8. android qq语音按钮,qq语音设置怎么操作?手机qq语音设置在哪里
  9. QNX 7.1 交叉编译 boost 1.76
  10. At least one JAR was scanned for TLDs yet contained no TLDs.问题解决方式
  11. vue 实现抽奖大转盘
  12. ctab法提取dna流程图_CTAB法原理(植物DNA提取经典方法)
  13. h5的第一天 做的自定义调色器
  14. 作为米粉,我不得不说一说小米11全系,小米还是最初的小米呀
  15. Python绘制对多角星
  16. Ubuntu 安装 netbeans 及遇到 not all requested modules can be enabled 问题、配置C/C++环境问题
  17. 交个朋友,一个普通二本物联网程序员的自述
  18. leetcode377组合总和 ⅣC++
  19. Google code android开源项目
  20. 佳能Canon imageRUNNER ADVANCE C5535 驱动

热门文章

  1. Linux ❉ Vim文本编辑器及其应用详解
  2. 2017夏天之哪凉快去哪里 之八
  3. 教室预约微信小程序,教室预约系统小程序,教室预约小程序系统毕业设计作品
  4. cocos2d-x优化内存和程序大小
  5. Spring Security最简单全面教程(带Demo)
  6. iDigital2019数字营销广告主峰会
  7. r2: 软工上机 人事管理系统 讨论点
  8. php 单字函数,php对UTF8字体串进行单字分割返回数组
  9. csgo搬砖项目是什么?怎么做?
  10. 南宁琅东的机器人餐厅_南宁私人情侣包厢餐厅,南宁最值得一吃的餐厅