vue3学习七 toRef 和 toRefs

news2024/9/22 8:04:21

toRef 和 ref 的作用差不多是一样的,都是可以把一个数据变成响应式的
我们一般使用toRef 或都 toRefs 是用来,简化 template 中的 数据的写法的, 使一个深层次的数据不用书写的时候那么麻烦。 如果不嫌麻烦的话, 这两个api 可以不用
看代码:

<template>
  <h3>name:{{person.name}}</h3>
  <h3>age:{{person.age}}</h3>
  <h3>salary:{{person.job.j1.salary}}</h3>
  <button @click="person.name+='~'">改名</button>
  <button @click="person.age++">改年龄</button>
  <button @click="person.job.j1.salary++">加薪</button>
</template>

<script>
import {ref,reactive,onMounted,onUnmounted} from "vue";
import mytime from "./hooks/lasttime"
export default {
  name: 'App',
  setup(){
    let person = reactive({
      name:"黄哥",
      age:39,
      job:{
        j1:{
          salary:20
        }
      }
    })

    return {
      person
    }
  }
}
</script>

在这里插入图片描述
从上图中, 可以看到, 因为我们 返回的是person , 所以, 在template 数据中, 到处都是 person. 的字样, 如果我们不想在template中写那么多 person. 用什么方法解决呢?
先说一种错误的方法
在这里插入图片描述
上面的做法是错误的, 我们的响应数据 定义的是 person. 而在红色框中的 name age salary, 所赋的值, 却是 person中的数据的值, 它并不是一个响应数据, 所以这种方法是不正确的, template中直接使用 {{name}} {{age}} {{salary}} 将不是响应式的

这时, 我们就可以使用 toRef 或 toRefs 来解决这个问题

在这里插入图片描述

上面使用的是 toRef , 再来使用一下 toRefs

首先我们打印一下 toRefs 返回的数据
在这里插入图片描述
在这里插入图片描述
可以看到, 返回的就是 person中的对象
所以, 我们可以这样使用 toRefs
在这里插入图片描述

以上就是 toRef 和 toRefs的用法

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

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

相关文章

尚硅谷-宋红康-JVM上中下篇完整笔记-JVM中篇

一.Class文件结构 1.概述 1.1 字节码文件的跨平台性 所有的JVM全部遵守Java虚拟机规范:Java SE Specifications&#xff0c;也就是说所有的JV环境都是一样的&#xff0c;这样一来字节码文件可以在各种JVM上运行。 1.2 Java的前端编译器 想要让一个Java程序正确地运行在JVM中&am…

安装Nacos

什么是Nacos 官网中如此说道&#xff1a; Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以…

CSS选择器的常见用法

文章目录 CSS是什么CSS的引入方式内部样式表行内样式表外部样式 选择器基础选择器类选择器id选择器通配符选择器 复合选择器后代选择器 CSS是什么 CSS就是&#xff08;Cascading Style Sheets&#xff09;就是层叠样式表&#xff0c;CSS 能够对网页中元素位置的排版进行像素级…

从项目到技能,软件测试面试高频题总结 (附答案),收割10个offer...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 软件测试面试题简历…

农村供水调度系统在河北某地的建设案例

项目背景 农村饮水安全事关广大农村居民的切身利益&#xff0c;是脱贫攻坚、乡村振兴的基础条件。该县为加快推进农村人饮安全运行管理工作&#xff0c;建立健全运管服务体系&#xff0c;改善当前农村人饮安全运营现状&#xff0c;积极实施城乡供水一体化工程&#xff0c;进一步…

八、使用代码对道路结果进行后处理及iou优化步骤详解

老师又给我画了大饼 没办法 只能按照他们的想法做个尝试 上一篇的方法还没进行下去 就被叫停 又更新了一个新的想法 这里记录一下 我的尝试过程 一、图片膨胀 首先使用代码对道路进行膨胀 这里的代码 import cv2 import numpy as np img cv2.imread(gt_dirname, 0) ke…

李白、高适、杜甫,情义深深,抵不过乱世游离

李白&#xff0c;字太白&#xff0c;是唐朝浪漫主义诗人&#xff0c;被后人誉为“诗仙”&#xff0c;杜甫&#xff0c;字子美&#xff0c;唐代现实主义诗人&#xff0c;李白和杜甫合称为“李杜”。高适&#xff0c;字达夫&#xff0c;唐代诗人。李白&#xff0c;杜甫&#xff0…

JVM学习随笔03——Java堆中new一个对象的步骤

目录 一、进行类加载 二、堆中分配内存 1、怎么输出GC日志&#xff1a; 2、内存分配的两种方式&#xff1a; 3、内存分配过程中并发控制的两种方式&#xff1a; 三、内存空间初始化 四、对象头初始化&#xff08;对象头包含哪些信息&#xff1f;&#xff09; 五、执行构…

【C++】-const对象及成员函数之类和对象中篇完结(中)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言一、案例的引入二、const对象和成员函数三、取地…

有效库存管理策略:避免滞销和短缺的利器!

在现代企业管理中&#xff0c;采购计划和库存管理是非常重要的环节。一方面&#xff0c;采购计划可以让企业根据市场需求和自身情况&#xff0c;科学合理地安排采购时间、采购量和采购方式&#xff0c;从而有效地控制成本&#xff0c;并确保生产和销售的顺畅&#xff1b;另一方…

bigdata-file-viewer--大数据文件查看工具

bigdata-file-viewer--大数据文件查看工具 bigdata-file-viewer是什么常用功能安装 bigdata-file-viewer是什么 一个跨平台&#xff08;Windows&#xff0c;MAC&#xff0c;Linux&#xff09;桌面应用程序&#xff0c;用于查看常见的大数据二进制格式&#xff0c;例如Parquet&…

【C++ 学习 ③】- 类的六大默认成员函数

目录 一、 构造函数 1.1 - 概念 1.2 - 特性 二、析构函数 2.1 - 概念 2.2 - 特性 2.3 - 用栈实现队列 三、拷贝构造函数 四、运算符重载 4.1 - 双目运算符 4.2 - 单目运算符 4.3 - 赋值运算符重载 五、const 成员函数 六、取地址 和 const 取地址运算符重载 参考…

如何写软件测试简历项目经验,靠这个面试都要赶场

一、前言&#xff1a;浅谈面试 面试是我们进入一个公司的门槛&#xff0c;通过了面试才能进入公司&#xff0c;你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试&#xff0c;得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一…

如何计算旋转框的IOU

一、先将两个框转换为角点形式 一般我们得到的是中心点&#xff0c;宽高&#xff0c;和旋转角度。通过矢量旋转公式得到角点形式。 二、判断四个角点是否在对方的框里&#xff0c;并保存在里面的角点 A的角点向B的相邻的两条边投影(任意的B的两条边)&#xff0c;使用向量点积得…

微信开发者工具实现代码加固

一&#xff1a;下载安装node.js node.js下载地址&#xff1a;下载 | Node.js 二&#xff1a;微信开发者工具安装代码加固拓展 1&#xff1a;开发者工具选择设置-》拓展设置 2:安装代码加固拓展 三&#xff1a;使用代码加固拓展实现核心密码加密 1&#xff1a;安装devtool-cod…

makefile 变量赋值方式

文章目录 前言一、变量的定义和使用二、变量的赋值方式1&#xff0c;简单赋值 &#xff08; : &#xff09;2&#xff0c;递归赋值 &#xff08; &#xff09;3&#xff0c;条件赋值 &#xff08; ? &#xff09;4&#xff0c;追加赋值 &#xff08; &#xff09; 三、预定义…

Django框架003:orm与MySQL数据库的连接及踩坑记录

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

FFCNet:基于傅立叶变换的频率学习和复杂卷积网络用于结肠疾病分类

文章目录 FFCNet: Fourier Transform-Based Frequency Learning and Complex Convolutional Network for Colon Disease Classification摘要方法Patch Shuffling Module (PSM)Frequency-Domain Complex NetworkComplex ConvolutionComplex ReLUComplex BN 实验结果 FFCNet: Fou…

1— .Net MVC之控制器

在上下文中使用的控制器 问题 答案 什么是控制器&#xff1f; 控制器包含用于接收请求、更新应用程序状态或模型以及选择将发送给客户端的响应的逻辑 控制器有什么用&#xff1f; 控制器是MVC项目的核心&#xff0c;并包含Web应用程序的逻辑 如何使用控制器&#xff1f; …

第五讲:设计库的管理和使用

第五讲&#xff1a;设计库的管理和使用 概述&#xff1a; 课程内容简介&#xff1a; 1、 下载Design kit 2、 安装 Design kit 3、 Design kit的使用 4、 如何进行优化设计 Design Kit – 由元件厂商所提供设计元件库&#xff0c; PDK – Process Design Kit &#xff08;IC的…