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

Vue3中的ref和shallowRef、reactive和shallowReactive

一:ref、reactive简介

  • ref和reactive是Vue3中定义响应式数据的一种方式。
  • ref通常用来定义基础类型数据。
  • reactive通常用来定义复杂类型数据。

二、shallowRef、shallowReactive简介

  • shallowRef和shallowReactive是Vue3中定义浅层次响应式数据的方式

三、Api使用对比

注意:监听不到变化的数据,在页面中其它数据变化被监听到时,会同步改变

shallowRefshallowReactive
修改浅层数据正常监听正常监听
修改深层数据无法监听无法监听
修改对象数据自身正常监听无法监听
修改数组对象自身正常监听正常监听

1、shallowRef

① 定义基础数据

let sum = shallowRef(0)sum.value++  // 数据正常监听

② 定义对象、数组

// 1、定义对象
let personRef = shallowRef({name:'李四',age:18,
})
//    修改深层数据
personRef.value.name = '小猪佩奇'; // 监听不到
//    修改浅层数据(自身)
personRef.value = {name:'小猪佩奇',age:2}; // 数据可正常监听// 2、定义数组
let listRef = shallowRef([1,2,3,4])
//    修改深层数据
listRef.value[0] += 2; // 监听不到
//    修改浅层数据(自身)
listRef.value = [9,99,999]; // 数据可正常监听

2、shallowReactive

①、定义对象

let personRea = shallowReactive({name:'张三',age:25,children:{name:'张XX',age:1}
})
//    修改浅层次数据
personRea.name = '张思锐'; // 可正常监听
personRea.children = {name:'张Y',age:1.5}; // 可正常监听
//    修改深层次数据
personRea.children.name = '张YY'; // 数据监听不到
//    修改数据本身
Object.assign(personRea,{name:'张三三',age:26,children:{name:'张XX',age:2}
}); // 数据监听不到

②、定义数组

let listRea = shallowReactive([{a:1},{a:2}
])
// 修改浅层次数据
listRea[0] = {a:99}; // 可正常监听
// 修改深层次数据
listRea[0].a += 2; // 监听不到
// 修改数据本身
listRea.length = 0 // 可正常监听

四、关于浏览器插件Vue.js.devtools的提醒

注意:通过shallowRef和shallowReactive定义的数据改变时未被监听到时,在浏览器插件Vue.js devtools中也监听不到变化,但是在页面中别的响应式数据变化时,会触发改变

1、 

http://www.lryc.cn/news/290040.html

相关文章:

  • go包与依赖管理
  • C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态
  • nginx部署前端(vue)项目及配置修改
  • FreeRTOS
  • windows 10/11 home左键点击开始菜单无反应
  • 05.领域驱动设计:认识领域事件,解耦微服务的关键
  • 「仙逆」王麻子结丹救下老婆,极识斩杀金丹修士,元婴期下第一人
  • GoogleNet Inception v2 和 Inception v3详解
  • 在虚拟机上安装ubuntu
  • nav02 学习03 机器人传感器
  • Mysql-InnoDB-数据落盘
  • <el-date-picker>时间戳单位
  • 如何搭建Nextcloud云存储网盘并实现无公网ip访问本地文件【内网穿透】
  • 力扣hot100 子集 回溯 超简洁
  • Linux系统Shell脚本编程之条件语句
  • Jmeter连接数据库报错Cannot load JDBC driver class‘com.mysql.jdbc.Driver’解决
  • C# 获取计算机信息
  • 第4章 python深度学习——(波斯美女)
  • [UI5 常用控件] 03.Icon, Avatar,Image
  • python爬虫demo——爬取历史平均房价
  • 力扣0100——相同的树
  • Vue-40、Vue中TodoList案例
  • dvwa靶场文件上传high
  • ​ PaddleHub 首页图像 - 文字识别chinese_ocr_db_crnn_server​
  • 如何在Win系统安装Jupyter Notbook并实现无公网ip远程访问本地笔记
  • 腾讯云轻量应用Windows服务器如何搭建幻兽帕鲁Palworld私服?
  • AR眼镜_ar智能眼镜显示方案|光学方案
  • C语言之猜凶手
  • #Uniapp: uni.previewImage(OBJECT) 预览图片
  • SpringCloud-高级篇(十六)