shallowRef和shallowReactive的使用?

news2024/11/18 6:15:29

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、 shallowRef?
  • 二、 shallowReactive?
      • 在什么时候使用?
  • 三、案例
    • 1、shallowRef
    • 2、shallowReactive


提示:以下是本篇文章正文内容,下面案例可供参考

一、 shallowRef?

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

二、 shallowReactive?

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

在什么时候使用?

  • shallowReactive:如果只有一个对象数据,结构比较深,但是变化时只是外层属性的变换
  • shallowRef:如果只有一个对象数据,后续功能不会修改该对象中的属性,而是生成新的对象来进行替换

三、案例

1、shallowRef

<template>
  <div>
    <h2>姓名:{{ person }}</h2>
    <h2>姓名2:{{ obj.msg.name }}</h2>
    <h2>描述:{{ obj.msg.context }}</h2>
    <button @click="changePerson">修改name</button>
    <button @click="changeContext">修改描述</button>
  </div>
</template>

<script>
import { toRefs, shallowRef } from "vue";
export default {
  setup() {
    const person = shallowRef("jiajia11");
    const obj = shallowRef({
      msg: {
        name: "jiajia222",
        context: "真好看",
      },
    });

    const changePerson = () => {
      person.value += "&";
      console.log(person.value,'Person数据');
    };

    // 当使用shallowReactive来进行修改的时候,修改是不成功的
    //结论:shallowReative与shallowRef在某些特殊的应用场景下,是可以提升性能的;
    // 前者针对对象,用于浅层作用的响应式数据处理,而后者只处理基本数据类型的响应式,不进行对象的响应式处理
    const changeContext = () => {
      obj.value.msg.context += "对";
    };

    return {
      person,
      obj,
      changePerson,
      changeContext,
      obj,
    };
  },
};
</script>

当使用shallowReactive来进行修改的时候,修改是不成功的

在这里插入图片描述

2、shallowReactive

<template>
  <div>
    <h2>浅姓名:{{ name }}</h2>
    <h2>深年龄:{{ msg.age }}</h2>
    <h2>浅层:{{a}}</h2>
    <button @click="reactiveBtn">修改name</button>
    <button @click="changeAge">修改age</button>
    <button @click="changeA">修改a</button>
  </div>
</template>

<script>
import {toRefs,shallowReactive,shallowRef} from 'vue'
export default {
    setup(){
        const person = shallowReactive(
            {
                name:"Reactive",
                a:0,
                msg:{
                    age:20
                }
            }
        )

        const reactiveBtn = ()=>{
            person.name += '&'
        }

// 当使用shallowReactive来进行修改的时候,修改是不成功的
        const changeAge = ()=>{
            person.msg.age += 1
        }
        // 修改浅层
        const changeA = ()=>{
            person.a+=1
        }

        return {
            ...toRefs(person),
            reactiveBtn,
            changeAge,
            changeA
        }
    }
};
</script>

<style lang="scss" scoped>
</style>

点击修改年龄时不会发生改变,当触发修改a时才会进行改变
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为世界第一大癌症高效研发首创新药,AI大模型助力药物研发叩开未来之门

近日&#xff0c;三位高中生引爆了医药圈&#xff0c;他们使用人工智能&#xff08;AI&#xff09;引擎进行靶点发现&#xff0c;确定了多形性胶质母细胞瘤&#xff08;GBM&#xff09;的新治疗靶点&#xff0c;多形性胶质母细胞瘤&#xff08;GBM&#xff09;是最具侵袭性和最…

在外出差,如何远程登录公司内网金蝶云ERP管理系统【cpolar内网穿透】

文章目录 前言1.金蝶安装简介2. 安装cpolar内网穿透3. 创建安全隧道映射4. 在外远程访问金蝶云星空管理中心5. 固定访问地址6. 配置固定公网访问地址7.创建数据中心简介8.远程访问数据中心9. 固定远程访问数据中心地址10. 配置固定公网访问地址 转发自CSDN风浪越大%鱼越贵的文章…

微信小程序最新获取头像昵称方式

前言 版本历史变迁 一、获取头像的正确姿势 二、获取昵称的正确姿势 总结 前言 产品需要获取微信用户的昵称和头像。 这这还不简单&#xff0c;so easy&#xff01; 通过wx.getUserProfile或者 wx.getUserInfo 就可以获取到。 但是获取的昵称是”微信用户“获取的头像是…

LeetCode 515. 在每个树行中找最大值

515. 在每个树行中找最大值 描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09; 示例 示例1 输入&#xff1a;root [1,3,2,5,3,null,9] 输出&#xff1a;[1,3,9] 示例2 输入&#…

OpenHarmony dump渲染和合成图层SurfaceBuffer指南

OpenHarmony dump渲染和合成图层SurfaceBuffer指南 引言 博客停更很久了&#xff0c;提起笔来渐感生疏啊&#xff01;看来&#xff0c;还是得抽出时间来更新更新啊&#xff01;好了&#xff0c;感慨也发完了&#xff0c;是时候切入正题了。本篇博客主要以本人在实际项目的开发中…

Excel技巧之 【提取文件夹内的全部文件名】

在工作中&#xff0c;有时候需要将所有文档的名字提取出来做成表格。 这种情况&#xff0c;你是一个一个复制粘贴么&#xff1f;nonono&#xff01; 如果你是复制粘贴的&#xff0c;一定要试试下面的方法&#xff0c;可以快速提取文件名。 具体步骤&#xff1a; 1. 将所有的…

chatgpt赋能Python-python3_5怎么算

Python3|5是如何计算的&#xff1f; 介绍 Python是一种高级编程语言&#xff0c;许多开发人员喜欢使用它来构建各种应用程序&#xff0c;从网站到机器学习应用程序。然而&#xff0c;在使用Python编写代码时&#xff0c;很多人都会遇到一个问题&#xff1a;Python3|5计算是如…

粪菌移植——一种治疗人体疾病的新型疗法

谷禾健康 粪菌移植是一项近年来备受关注的医疗技术&#xff0c;它涉及将健康捐赠者的粪便物质转移至患有疾病或障碍患者的胃肠道。 简单来说就是选择健康合适的人粪便&#xff0c;通过科学方法提取出有用的微生物&#xff0c;去除有害与无用的部分&#xff0c;然后制成制剂&…

Redis缓存实战

一 Redis缓存简介 二 Redis缓存入门 在我们查询数据一般都是直接查询数据库&#xff0c;返回给前端。为了提高效率实际项目中会将基础数据等热点数据放入redis缓存中。 发起请求&#xff0c;先访问redis缓存&#xff0c;缓存中有直接将数据返回&#xff1b;缓存没有命中&…

玩转Netty,从“Hello World”开始

大家好&#xff0c;我是老三&#xff0c;之前里&#xff0c;我们讨论了Java的三种IO模型&#xff0c;提到了网络通信框架Netty&#xff0c;它简化和优化了NIO的使用&#xff0c;这期&#xff0c;我们正式开始走近Netty。 为什么要用Netty? 首先当然是NIO的使用&#xff0c;本…

知行之桥EDI系统2023版功能介绍——日志页面

在知行之桥EDI系统2023版中&#xff0c;除了在此前的文章中曾经介绍过的概览页面之外&#xff0c;还新增了日志页面。日志页面基于旧版本的状态页面进行了功能优化&#xff0c;为用户展示了消息、交易日志、应用程序日志、访问日志以及审计日志五种类型&#xff0c;每种日志类型…

MySQL 复合查询 内外连接

目录 基本查询回顾 多表查询 自连接 group by可以带多个 子查询 在from子句中使用子查询 合并查询 表的内连和外连 内连接 外连接 左外连接 右外连接 关于自连接和内连接&#xff08;chatgpt&#xff09; 基本查询回顾 查询工资高于 500 或岗位为 MANAGER 的雇员…

虚拟键盘:十六进制值和鼠标或键盘等效项。 代码按数字顺序列出

Virtual-Key Codes (Winuser.h) - Win32 apps | Microsoft Learn 虚拟键码 (Winuser.h) - Win32 apps | Microsoft Learn Value说明0x01鼠标左键0x02鼠标右键0x03控制中断处理0x04中间鼠标按钮 (三键鼠标)0x05X1 鼠标按钮0x06X2 鼠标按钮0x07Undefined0x08BACKSPACE 密钥0x09T…

注册阿里云OSS步骤

注册阿里云OSS步骤 阿里云是阿里巴巴集团旗下全球领先的云计算公司&#xff0c;也是国内最大的云服务提供商 。 云服务指的就是通过互联网对外提供的各种各样的服务&#xff0c;比如像&#xff1a;语音服务、短信服务、邮件服务、视频直播服务、文字识别服务、对象存储服务等等…

【SAM】CAN SAM COUNT ANYTHING? AN EMPIRICAL STUDY ON SAM COUNTING

论文链接&#xff1a; 代码链接&#xff1a; 目的 探索SAM在few-shot setting的object counting的能力。 结论 它目前落后于最先进的few-shot object counting方法&#xff0c;特别是对于小而拥挤的物体。两个主要原因。首先&#xff0c;SAM倾向于使用单个掩码分割同一类别…

javaIO流之序列流

目录 简介一、ObjectOutputStream二、ObjectInputStream三、Kryo四、小结 简介 Java 的序列流&#xff08;ObjectInputStream 和 ObjectOutputStream&#xff09;是一种可以将 Java 对象序列化和反序列化的流。 序列化是指将一个对象转换为一个字节序列&#xff08;包含对象的…

《算法训练营》贪心入门 + 10题

&#x1f442; 梦寻古镇 - 羽翼深蓝Wings - 单曲 - 网易云音乐 &#x1f442; 如果我有一个男朋友 - 于娜懿 - 单曲 - 网易云音乐 &#x1f442; 对酒&#xff08;女生版&#xff09; - 浅影阿 - 单曲 - 网易云音乐 &#x1f442; 知我&#xff08;抒情版&#xff09; - 尘a…

分享一个程序员接私活、兼职的平台

分享一个程序员接私活、兼职的平台 1、技术方向满足任一即可2、技术要求3、最后 1、技术方向满足任一即可 Python&#xff1a;熟练掌握Python编程语言&#xff0c;能够使用Python进行数据处理、机器学习和深度学习等相关工作。 MATLAB&#xff1a;熟练掌握MATLAB编程语言&…

API接口设计方案

API&#xff08;Application Programming Interface&#xff09;接口是一种用于与应用程序进行交互的标准化接口&#xff0c;它允许第三方应用程序通过网络调用应用程序的功能。设计API接口是开发人员在开发软件系统时的重要任务之一&#xff0c;因为API接口的质量和易用性直接…

UML的14种图

目录 1.UML 2.0包括14种图&#xff0c;分别列举如下&#xff1a; 2.活动图、用例图 3.部署图、顺序图 4.类图、协作图 5. 状态图、构件图 6.UML结构图和行为图 7.最后推荐一个图片转文字网站 8.最后推荐一个抖音去水印在线工具 9.最后推荐一个PPT模板下载网站 1.UML 2…