Vue3:优化-从响应式数据中获取纯数据

一、情景说明

我们知道,Vue3中,创建变量时,常用ref、reactive来包裹,这样,这个变量就是响应式数据

然而,有时候,我们只需要纯数据

例如,我们在调用后端接口的时候,我们只要传递JSON结构的纯数据,不需要具备响应式

从而,提升性能。

这个时候,就需要用到toRaw、markRaw技术

二、案例

1、toRaw

从响应式对象中,取出纯JSON数据

js 复制代码
import { reactive,toRaw,markRaw,isReactive } from "vue";

/* toRaw */
// 响应式对象
let person = reactive({name:'tony',age:18})
// 原始对象
let rawPerson = toRaw(person)

2、markRaw

标记一个对象,使其永远不会变成响应式的。

javascript 复制代码
/* markRaw */
let citys = markRaw([
  {id:'asdda01',name:'北京'},
  {id:'asdda02',name:'上海'},
  {id:'asdda03',name:'天津'},
  {id:'asdda04',name:'重庆'}
])
// 根据原始对象citys去创建响应式对象citys2 ------ 创建失败,因为citys被markRaw标记了
let citys2 = reactive(citys)
相关推荐
码云之上4 小时前
Skill 里的脚本终于能跑了,星悟接 CubeSandbox 的纪实
前端·人工智能·前端框架
IT_陈寒4 小时前
Vue computed属性这个坑,我居然踩了三次才爬出来
前端·人工智能·后端
烈风逍遥4 小时前
第三篇:组件化实践,SpTable 通用表格组件设计
前端·架构
计算机魔术师5 小时前
三周时间,128个PR,83万行代码——GitHub 是怎么让 AI 重写自己的
前端
传奇开心果编程5 小时前
【Rust入门练中学】 第3课:数据类型
开发语言·学习·rust
泡泡鱼(敲代码中)5 小时前
MySQL 学习笔记:DCL、函数与约束 —— 安全、效率、完整性的三板斧
开发语言·笔记·sql·学习·mysql·gitee
甲维斯5 小时前
完蛋了,豆包变这么强?Seed2.1pro小测一下!
前端·人工智能
烈风逍遥6 小时前
第一篇:SeaPack 全栈项目工程化实践
前端·后端·架构
烈风逍遥6 小时前
第二篇:SeaPack 权限体系:从"谁都能看"到"该看什么看什么"
前端·后端·架构