Vue3中shallowReactive 与 shallowRef 的用法

article/2025/9/15 15:05:53

shallowReactive 与 shallowRef

  • shallowReactive:只处理对象最外层属性的响应式(浅响应式)。

  • shallowRef:只处理基本数据类型的响应式, 不进行对象的响应式处理。

  • 什么时候使用?

    • 如果有一个对象数据,结构比较深, 但变化时只是外层属性变化 ===> shallowReactive。

    • 如果有一个对象数据,后续功能不会修改该对象中的属性,而是生新的对象来替换 ===> shallowRef。

代码演示

        shallowReactive

        我们在组件中使用shallowReactive方法定义了一个对象 我们返回对象将对象的属性在模板中使用

<template><div><h1>姓名:{{name}}</h1><h2>年龄:{{age}}</h2><h3>喜欢的水果:{{likeFood.fruits.apple}}</h3><button @click="name += '~'">修改姓名</button><button @click="age++">修改年龄</button><button @click="likeFood.fruits.apple += '!'">修改水果</button></div>
</template><script>
import {reactive, toRefs, shallowReactive} from 'vue'
export default {name: "App",setup() {// 定义了一段数据let person = shallowReactive({    // 只将第一层数据做了响应式处理 name: '张三',age: 18,likeFood: {fruits:{apple: '苹果'               // 深层次的数据将会是一个普通的对象}}})// 将数据返回出去return {...toRefs(person)}}
};
</script>

        我们修改数据只有定义在对象第一层的属性 才是响应式的 深层次的数据将不在具有响应式的功能 因为深层次的数据将不在是一个响应式对象 而是一给普通对象

 数据变了 但是vue监测不到 无法触发页面的更新

shallowRef

        我们调用了shallowRef方法传递了基本数据类型 我们可以看到 当前属性是有响应式的

...
<div><h1>姓名:{{ sum}}</h1><button @click="sum++">点击+</button>
</div>
...setup() {// 定义了一段数据let sum = shallowRef(0);// 将数据返回出去return {sum,};},
...

        但我们点击修改数据 在页面中 可以看到是有响应式功能的 

 

        但是我们现在传递一个对象进去 我们可以看到 传递的对象将变成一个普通对象 不在具有响应式功能了 

...<div><h1>姓名:{{ sum.n}}</h1><button @click="sum.n++">点击+</button></div>
...
setup() {// 定义了一段数据let sum = shallowRef({      // sum将不在是一个响应式对象 n: 0});// 将数据返回出去return {sum,};},
...

在页面中我们可以看到 修改数据后将不在触发页面的更新 因为vue监测不到了 

 


http://chatgpt.dhexx.cn/article/4V3mu22m.shtml

相关文章

2018华为软挑--模拟退火+FF解决装箱问题【C++代码】

算法简介&#xff1a; 装箱问题是一个NP完全问题&#xff0c;求解全局最优解有很多种方法&#xff1a;遗传算法、禁忌搜索算法、蚁群算法、模拟退火算法等等&#xff0c;本次使用模拟退火&#xff0c;它的优点是在参数合适的情况下基本上可以100%得到全局最优解&#xff0c;缺点…

2020华为软挑热身赛代码开源-思路大起底(华为软件精英挑战赛编程闯关)

本文首发于个人公众号【两猿社】&#xff0c;后台回复【华为】&#xff0c;获取完整开源代码链接。 昵称&#xff1a;lou_shang_shi_bian_tai 成绩:0.032 社长没有针对硬件做任何优化&#xff0c;热身赛成绩也一般。但有些比赛的trick我想与大家一起分享&#xff0c;希望对继续…

2021华为软挑-成渝复赛复盘

成渝赛区 团队名&#xff1a;newWorld 初赛 rank 22&#xff0c;复赛 rank 22。 github源码&#xff1a;https://github.com/Yin-Freedom/codecraft_2021 赛题介绍 赛题网址&#xff1a;https://competition.huaweicloud.com/advance/1000041380/circumstance 本次赛题来源…

2020华为软挑热身赛

基于高斯贝叶斯分类的C优化器 摘要&#xff1a;2020华为软件挑战赛如期举行&#xff0c;本次挑战赛分为热身赛、初赛、复赛、总决赛4个部分&#xff0c;其中热身赛结合当前机器学习中分类问题以及鲲鹏服务器性能相关来出题。为了解决该问题&#xff0c;达到算法准确率和程序时…

华为软挑赛2023-初赛笔记

前言 比赛介绍 官方链接: 2023华为软件精英挑战赛——普朗克计划 (huaweicloud.com) 赛题介绍 场景介绍 官方赛题介绍: 2023华为软件精英挑战赛初赛赛题及相关材料发布_2023华为软件精英挑战赛_华为云论坛 (huaweicloud.com) 比赛场景如图所示 简单来说&#xff0c;在一…

【C++】2018华为软挑:模拟退火+贪心FF解决装箱问题

本文的主要工作是补充这篇博客的缺失代码&#xff0c;使之能够运行。 2018华为软挑--模拟退火FF解决装箱问题【C代码】_小马哥MAX的博客-CSDN博客算法简介&#xff1a; 装箱问题是一个NP完全问题&#xff0c;求解全局最优解有很多种方法&#xff1a;遗传算法、禁忌搜索…

2020华为软挑热身赛-这些坑我帮你踩过了(华为软件精英挑战赛编程闯关)

本文始发于个人公众号【两猿社】。 声明&#xff0c;为保证比赛公平&#xff0c;本文不会提供比赛源码&#xff0c;仅提供思路与踩坑经验。 他来了&#xff0c;他来了&#xff0c;他带着面试绿卡走来了。 他来了&#xff0c;他来了&#xff0c;他带着20w大奖走来了。 一年一度…

2018华为软挑参赛体验

第一次接触到这个比赛应该是研究生刚入学的时候&#xff0c;在教研室看到了师姐的一份简历&#xff0c;上面就有华为软挑的参赛经历。研一利用空余时间加强C和STL的学习&#xff0c;看完了《C primer》《Effective STL》&#xff0c;自己也写了一些demo&#xff0c;感觉这个比赛…

2022华为软挑编程问题报错总结

for i in number_feature: TypeError: ‘int’ object is not iterable的错误 错误原因&#xff1a;是因为在python里&#xff0c;整型&#xff08;int&#xff09;数据是不能直接用于迭代的&#xff0c;而是应该用range()函数 改为如下图&#xff1a;

2021华为软挑部分答疑——哪些你有错却总是找不到的地方,我来带你找啦(含标准输入代码)

前期工作&#xff1a; 2021华为软挑初探——代码实现 2021华为软挑再探——代码实现 1 关于打包 在windows系统下&#xff0c;先把你写的程序写在src里面的CodeCraft-2021里面 然后在这个页面&#xff0c;将这三个文件压缩就可以上传啦&#xff1a; 2 关于标准输入 标准输…

华为软挑2019

参加软挑的一些感悟 写在前边的话 我本科一直在做嵌入式相关的项目,这是第一次参加软件类的竞赛,不得不说过程确实很刺激,最后止步杭厦赛区50强也很是遗憾,明明很接近,最后输在了代码效率上,本地成绩很好的 python代码 ,上传测评运行时间超限&#xff08;官测环境比本地性能好&…

2021华为软挑初探——代码实现

其他工作&#xff1a; 2021华为软挑部分答疑——哪些你有错却总是找不到的地方&#xff0c;我来带你找啦&#xff08;含标准输入代码&#xff09; 2021华为软挑再探——代码实现 这几天华为软挑好多人也是做的热火朝天&#xff0c;作为一个渣渣小孙也来探探&#xff0c;不探…

2020华为软挑总结

文章目录 一、热身赛编程闯关&#xff1a;评价标准&#xff1a;问题分析 二、初赛问题描述评价标准&#xff1a;问题分析思路一&#xff1a;思路二&#xff1a;思路三&#xff1a;针对思路三的提速&#xff1a; 最终结果&#xff1a; 三、code记录初赛两篇不错的总结三、复活赛…

2022华为软挑比赛(初赛笔记)

文章目录 2022华为软挑&#xff08;初赛笔记&#xff09;1. 赛题要求2. 解决方案2.1 挑选适合的边缘节点2.2 第一轮&#xff1a;最大分配2.3 第二轮&#xff1a;均值分配 总结 本文仓库地址&#xff1a; Github-CodeCraft-2022 2022华为软挑&#xff08;初赛笔记&#xff09; …

2023华为软件精英挑战赛笔记心得(Python实现)

第一次参加华为软挑&#xff0c;问了周围一圈人没人组队&#xff0c;看了眼题目&#xff0c;感觉挺有意思的&#xff0c;就打算自己写来跑一下&#xff0c;不求分数&#xff0c;主要是想学点东西&#xff0c;顺便记录一下。&#xff08;最后跑了195w&#xff0c;自己的能力也就…

2021华为软件精英挑战总结

2021华为软挑32强总结 今年的软挑最终止步于粤港澳赛区第16名&#xff0c;总成本为16亿3979万6349&#xff0c;赛区第一名总成本为15亿3903万4817。 虽然没进入决赛&#xff0c;但是拿到了华为面试直通卡&#xff0c;也喜提广州一日游&#xff0c;算不虚此行了。决赛虽然还在继…

Spring认证中国教育管理中心-Spring Data Neo4j教程一

原标题&#xff1a;Spring认证中国教育管理中心-Spring Data Neo4j教程一&#xff08;Spring中国教育管理中心&#xff09; 5. 开始 我们为 SDN 提供了 Spring Boot 启动器。请通过您的依赖管理包含启动模块并配置要使用的螺栓 URL&#xff0c;例如org.neo4j.driver.uribolt:/…

SpringBoot 整合 Neo4j

1、创建测试类2、集成 SpringBoot 阅读此文之前&#xff0c;必须对 Neo4j 有个初步的了解&#xff0c;如果要实际操作的话&#xff0c;需要自备一个 Neo4j 数据库 本文所涉及代码已开源至 Gitee https://gitee.com/Array_Xiang/spring-boot-neo4j 创建一个 SpringBoot 项目&…

【Neo4j教程之CQL函数基本使用】

&#x1f680; Neo4j &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;C…

Neo4j资料 Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程

课程发布地址 地址&#xff1a; 腾讯课堂《Neo4j 图数据库视频教程》 https://ke.qq.com/course/327374?tuin442d3e14 作者 庞国明&#xff0c;《Neo4j权威指南》副主编、《Neo4j 3.x 入门经典》翻译 邮箱&#xff1a;pangguomingyeah.netQQ:1143815700Neo4j技术讨论QQ群&…