Vue3.0 toRef toRefs :VCA模式

news2024/11/28 20:52:32

简介

作用: 创建一个ref对象,其value值指向另一个对象中的某个属性

语法: const name = toRef(person, 'name')

应用: 要将响应式对象中的某个属性单独供应给外部使用时

扩展: toRefs与toRef功能一致,但可以批量创建多个ref对象,

语法:toRefs(person)

案列

<template>
  <div>
    <button @click="getData">点我</button>
    <button @click="myClick">点我修改名称Email</button>
    <div>{{ name }}--{{ age }}--{{ email }}--{{ cpu }}--{{ screen }}--{{ mobile }}</div>

    <ul>
      <li v-for="item in list">{{ item }}</li>
    </ul>
  </div>
</template>
<script>
import { reactive, ref, toRef, toRefs } from 'vue';
export default {
  setup() {
    const mydata = reactive({
      email: "ab@qq.com"
    })

    const obj = reactive({
      name: "张三",
      age: 29,
      datalist: ["aaa", "bbb", "ccc"],
      mytitle: "",
    })

    const myPhone = ref({
      cpu: "麒麟9000",
      screen: 9.0
    })

    const myClick = () => {
      mydata.email = "123@qq.com"
    }

    const mobile = ref("18650999009")

    const getData = () => {
      console.log("被执行了")
      let bannerList = reactive({
        list: [],// 模板中直接 写入 list 就可以了
      });
      fetch("./src/1.json").then(res => res.json()).then(res => { //模拟一个异步请求:1.json的内容是:{"list":["中国","美国","俄罗斯"]}
        bannerList.list = res.list;
      })
      return bannerList;
    }

    return {
      //toRef将对象中的属性变成响应式数据,修改响应式数据是会影响到原始数据。

      //单个转化方式(创建一个ref对象)

      //toRef(mydata,"email")的作用就是将mydata对象中的email暴露出去
      //这样做的好处就是:
      //如果我们直接暴露出去mydata,如retrun{mydata} 在Dom模板中我要用到email的值就需要【对象名称.属性名称】的方式来取值 如:{{mydata.email}}
      //如果用return{email: toRef(mydata,"email")} 暴露出去,在Dom模板中我要用到email的值就直接用email就行了 如:{{email}}
      email: toRef(mydata, "email"),//注意:不能写成:email:mydate.email 因为这样写就不是响应式的了,到时候你执行myClick修改了email,Dom模板中的email值也不会发生改变()



      //批量转化方式(批量创建多个ref对象)

      //...toRefs(obj)的作用是将obj对象里面的每一项作为单独的项暴露出去:等同于 retrun{ name:toRef(obj,"name"),age:toRef(obj,"age"),datalist:toRef(obj,"datalist"),mytitle:toRef(obj,"mytitle")}
      //...toRefs(obj)的好处就是:在Dom模板中使用的时候就不需要用【对象名称.属性名称】了.
      //例如:
      //retrun{obj}的方式,在Dom模板中我要用到name的值就需要这样来取 如:{{obj.name}}
      //retrun{...toRefs(obj)}的方式,在Dom模板中我要用到name的值就直接取 如:{{name}}
      ...toRefs(obj),

      ...toRefs(getData()),     //将getData()方法中的返回数据暴露出去

      ...toRefs(myPhone.value), //注意这种用ref包裹的对象,需要在对象名后面.value

      mobile,

      myClick,
    }
  }
}
</script>

ES6方法:"..."展开运算符 

<script>
  let a = [1, 2, 3]
  let b = [4.5, 6]
  //ES6的方法: ...
  var c = [...a, ...b]
  console.log(c) //输出:[1,2,3,4,5,6]
</script>

...就是把数组里面的内容给展开,...a就是把a里面的内容全部展开,也就是1,2,3,然后...b展开以后和a展开放在一起,就成了c那样子

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

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

相关文章

会声会影2023输出文件太大怎么办

会声会影2023是一款专业的视频编辑软件&#xff0c;它由于简单易学的操作被众人所喜爱。在会声会影中编辑好的视频一般以渲染的形式导出保存&#xff0c;但是有时会出现输出文件太大的情况&#xff0c;这到底是什么原因呢&#xff1f;下面由我带大家一起来了解会声会影输出文件…

每天学习都很累,该怎么办?

中考淘汰一批人&#xff0c;高考又淘汰一批人&#xff0c;能杀进大学的&#xff0c;都知道高考的累。好不容易进了大学&#xff0c;却发现仍有打卡、作业、考试。 加上每天满满的课表&#xff0c;只是看看就让人心累。 为了奖学金或升学就业&#xff0c;又得去卷绩点、卷比赛、…

【Linux】Linux+Nginx部署项目(负载均衡动静分离)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Linux的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Nginx负载均衡 1.什么是负载均衡 2.实…

AIGC驱动,商业翻新,拓世法宝AI智能直播一体机,绘就商业革命新篇章

迈入数字新纪元&#xff0c;AIGC技术掀起了全球范围内的内容创作革命。这种借人工智能之力突破创造力边界的技术&#xff0c;已将内容生成的门槛降至前所未有的低点。AIGC凭借其惊艳的内容生成能力&#xff0c;收获了众人的瞩目。这不是一瞬间的激情释放&#xff0c;而是新时代…

UML类图关系

1.依赖 依赖关系由箭头表示&#xff0c;含义为A类在类中用到了B类&#xff0c;如B类作为A类的属性、参数、返回值等都属于依赖关系。 2.泛化&#xff08;继承&#xff09; 泛化用三角箭头和直线表示&#xff0c;extend。 3.实现 实现用三角箭头和虚线表示&#xff0c;在…

订水商城实战教程07-搜索

目录 1 创建数据源2 首页搜索功能3 创建搜索页面4 搭建搜索结果页面总结 上一篇我们讲解了店铺信息的展示功能&#xff0c;本篇讲解一下搜索功能。通常小程序在首页都配置了搜索的功能&#xff0c;输入关键词进行检索&#xff0c;可以在结果页上进行选购。同时还记录了用户的搜…

博客系统自动化测试项目实践

文章目录 一.测试需求分析1.功能分析2.非功能分析 二.制定测试方案&#xff08;计划 策略&#xff09;三.编写测试用例四.执行自动化测试用例五.编写测试报告六.项目总结 一.测试需求分析 1.功能分析 通过功能测试需求分析 2.非功能分析 非功能分析主要从:界面,性能,安全性,…

jmeter性能测试如何实现分布式部署

jmeter什么要做分布式部署&#xff1f; jmeter是运行在JVM虚拟机上的&#xff0c;当模拟大量并发时&#xff0c;对运行机器的性能/网络负载会很大。 此时就需要使用jmeter的分布式部署功能&#xff0c;实现多台被控机器同时并发访问被测系统。 原理图&#xff1a; 准备工作&…

小型取暖器上亚马逊美国站UL1278标准如何办理?

小型取暖器上亚马逊美国站UL1278标准如何办理&#xff1f; 小型取暖器上亚马逊美国站UL1278标准如何办理&#xff1f; 冬季马上就要来临&#xff0c;随着气温一天一天的下降&#xff0c;取暖器就是这个冬季必不可少的好物了&#xff0c;试想一下冬天一家人围着取暖器&#xf…

《TCP/IP详解 卷一:协议》第5章的IPv4数据报的Checksum(校验和)字段的计算(这里才能解开你的困惑)

首先&#xff0c;我当你看过书&#xff0c;但是比较懵。 1&#xff0c;实例说明Checksum(校验和)的计算步骤 直奔主题&#xff0c;分析一下这个Checksum&#xff08;校验和&#xff09;怎么算出来的。 先用Wireshark随便抓一个UDP或TCP包分析一下。 如上面&#xff0c;我们得…

SIP 系统容器化实践

由于SIP系统相对成熟&#xff0c;目前互联网上的SIP系统方案大多数都是基于虚拟机来实现的。 本文是基于容器化实现SIP系统的方案以及遇到的问题总结。 本文会展示两个系统的SIP实现&#xff0c;分别是智能语音机器人和CTI系统&#xff0c;不会涉及太多的业务&#xff0c;只是对…

前端实验(一)单页面应用的创建

实验目的 掌握使用vite创建vue3单页面程序命令熟悉所创建程序的组织结构熟悉单页面程序运行原理能够编写简单的单页面程序 实验内容 创建一个名为vue-demo的单页面程序编写简单的单页面程序页面运行单页面程序 实验步骤 使用vite创建单页面程序 创建项目名为目录vue-demo的…

【缓存】Spring全家桶中@CacheEvict无效情况共有以下几种

Spring全家桶中CacheEvict无效情况共有以下几种 一、背景介绍二、原因分析三、解决方案 一、背景介绍 SpringBoot中使用Cacheable注解缓存数据&#xff0c;使用CacheEvict注解删除缓存。但是在项目使用过程中&#xff0c;发现使用CacheEvict注解删除缓存无效。 拓展&#xff…

GORM:在Go中轻松管理数据库

GORM综合介绍 - Go对象关系映射库 在现代软件开发中&#xff0c;高效的数据库管理对于构建强大的应用程序至关重要。GORM是Go开发人员寻求与数据库进行交互的简化方式的宝贵工具。GORM是Go对象关系映射的缩写&#xff0c;它为Go的面向对象世界与数据库的关系世界之间提供了桥梁…

【Flink】全网最详细4W字Flink全面解析与实践(上)

本文已收录至GitHub&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 原创不易&#xff0c;注重版权。转载请注明原作者和原文链接 文章目录 流处理 & 批处理无界流Unbounded Streams有界流Bounded Streams Flink的特点和优势Flink VS Spa…

兴业银行养老金拉新项目上线啦,地推百搭项目

兴业银行养老金就在 ”聚量推客“ 申请开通 今年最火的银行拉新项目就是养老金的 单价高 数据好 目前开通养老金的银行有 兴业银行养老金拉新 交通银行养老金拉新 工商银行养老金拉新 招商银行养老金拉新 浦发银行养老金拉新 广发银行养老金拉新等。。还有很多都开通了…

Nignx及负载均衡动静分离

目录 一.Nignx简介 二.nginx搭载负载均衡 负载均衡 1.1启动nginx ​编辑 ​编辑 1.2开始 1.3导入前端数据 ​编辑 三.前端项目Linux部署(动静分离) 一.Nignx简介 Nginx是一个高性能的开源HTTP和反向代理服务器&#xff0c;也可以用作电子邮件&#xff08;SMTP/IMAP&am…

前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;前端封装指南&#xff1a;Axios接口、常用功能、Vue和React中的封装技术 本文目录 小引前端封装以真实项目举个例子 Axios接口封装常用功能封装封装 Vue中的封装技术React中的封装技术Vue和React封装…

基于Java+SpringBoot+Vue+Uniapp小程序前后端分离租房管理系统设计与实现(支持支付宝支付、有需求解析文档50页、演示视频)

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

人工智能基础知识

目录 什么是人工智能&#xff1f; 教学环境搭建 向量和矩阵 如果你是关注计算机领域最新趋势的学生或从业者&#xff0c;你应该听说过人工智能、数据科学、机器学习、深度学习等术语。作为人工智能系列文章的第一篇&#xff0c;本文将解释这些术语&#xff0c;并搭建一个帮助…