Vue3中toRef函数与toRefs函数

2023-11-02

在Vue 3中,toRef和toRefs用于处理响应式数据。toRef函数接受一个响应式对象和一个键,返回一个只读的Ref对象。这意味着当原始数据发生变化时,toRef创建的Ref对象也会更新
toRefs函数接受一个响应式对象(reactive对象),其转换为一个包含每个属性的Ref对象的普通对象。这样可以方便地将响应式对象的属性解构(...toRefs(reactiveObj)到Vue模板或组件中。这样,对每个属性的更新都会被反映到原始响应式对象上。

一、toRef函数


<template>
  <div>{{ person.name }}</div>
  <div>{{ person.job.city }}</div>
  <div>{{ salary }}</div>
  <button @click="salary++">涨薪</button>
</template>

<script>
import { reactive, toRef } from 'vue';
export default {
  setup() {
    const person = reactive({
      name: '张三',
      job: {
        city: '北京',
        salary:10
      }
    })
    return {
      salary: toRef(person.job.salary),
      person,
    }
  }
}
</script>

二、toRefs函数

<template>
  <div>{{ name }}</div>
  <div>{{ job.city }}</div>
  <div>{{ job.salary }}</div>
  <button @click="job.salary++">涨薪</button>
</template>

<script>
import { reactive, toRefs } from 'vue';
export default {
  setup() {
    const person = reactive({
      name: '张三',
      job: {
        city: '北京',
        salary:10
      }
    })
    return {
      ...toRefs(person)
    }
  }
}
</script>
总结:两者的作用都是使数据能够在模板或组件代码中进行响应式处理,简化模板,toRef函数用于操作reactive对象中的一个属性(键),而toRefs函数操作整个reactive对象,使用时将其解构出来再将响应式数据用于模板渲染以及数据操作等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3中toRef函数与toRefs函数 的相关文章

  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 如何将vue组件插入到contenteditable div中

    我想用 vue 创建简单的所见即所得编辑器 我发现只有一个在 vue js 上创建的真正的所见即所得编辑器 这里是 https quasar dev vue components editor 但我没有发现有插入图像的能力 其他 vue w
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • maven本地仓库有依赖包,还会远程下载的问题

    遇见这样的问题 明明本地有需要的依赖包 但是maven还是会从远程仓库拉取 如果远程仓库有需要的包还好 如果没有 或者无网络环境下没法访问远程仓库 那就直接报错 走不下去了 原因 在本地仓库的每个依赖包都存在这样的文件 remote rep
  • 关于npm install md5报错the command again as root/Administrator的解决办法

    nodejs安装依赖报错 venv PS D pythonProject gt npm install md5 npm ERR code EPERM npm ERR syscall mkdir npm ERR requiredBy npm
  • 回顾Vue&vue-cli

    Vue是一个MVVM Model View ViewModel 前端渐进式框架 框架 核心在于视图与模型的双向绑定 数据发生变化 则视图会发生变化 反之视图发生变化数据也会发生变化 导入vue cdn 基础语法 if else div me
  • Qt/MFC获取主窗口的指针

    在不同的窗口类中 不同的类之间需要互相访问 有时需要知道另一个窗口类的指针来调用他的函数 本文介绍两种方法 如下 Qt 方法1 WId ir WId FindWindow NULL L Target className pM classNa
  • ajax多文件上传插件,jquery多文件上传插件

    jquery imageuploader js是一款jquery多文件上传插件 该jquery多文件上传插件主要用于上传图片 它允许你选择多个图片文件 也可以直接拖拽图片到指定区域 然后显示图片的预览图和信息 最后通过Ajax一次性上传选择
  • 面向对象这么久了,还没找到对象?

    写代码的小伙伴们真幸福啊 想要对象了 没问题 new一个就好了 但是 new太多对象 对象也会生气的哦 你瞧 她来了 从两段代码发现端倪 我们来计算一个矩形的面积 看看这两段代码有什么区别呢 第一段 const height 3 const
  • #R语言# 并行计算-foreach

    最近经常要用R跑程序 每次都要跑好久 不加并行 CPU利用率实在低 在此记录下相关的语句 先导入相关包 library foreach library doParallel library parallel no cores lt dete
  • “执行文化”向“创业文化”的转变( 15年6月)

    社长在15年度事业方针里面提到 事业计划不再是军令 考核事业部的是ROI 这句话 怎么理解 谁也没有解释过 所以我也不太理解具体的内容 但我们可以看看国内的家电企业 比如海尔在做什么 海尔提出过许多新的词汇 网格化 去中心化 海尔开放平台
  • feign-引入-服务之间的调用

    总结 1 导入openfeign的包 2 创建一个接口 FeignClient配置服务的名称 配置调用的服务的url 拷贝调用服务接口过来修改 3 启动类上打上 EnableFeignclients注解 是否配置包的原则 feign所在包和
  • 日历中的数字

    题目描述 ElemenT马上就要毕业了 他打开日历看了看时间 发现日历上的日期都是2017 04 04这样的格式的 月和日如果不足2位数 前面都会补充0 给定一个年份和月份 ElemenT把那个月的日期都按上述格式写到纸上 他现在想知道某种
  • 没有免费的午餐定理和丑小鸭定理

    没有免费的午餐定理 noerfelunhchtocerm 简称NFL 该定理由wolpert和Macerday提出 结论是由于对所有可能函数的相互补偿 最优化算法的性能是等价的 该定理暗指 没有其它任何算法能够比搜索空间的线性列举或者纯随机
  • libevent使用点滴(1)使用libevent调用evthread_use_pthreads的一个可能的内存泄露

    使用libevent时为了保证线程安全 提供了evthread use pthreads函数 他的内部是会分配内存的 但是没有对应的函数来反释放evthread use pthreads分配的内存 那么在如下的场景用evthread use
  • [007]爬虫系列

    一 备注 在阅读此文章前 请先阅读前两篇 007 爬虫系列 猿人学爬虫攻防大赛 第五题 js混淆 乱码增强 上 007 爬虫系列 猿人学爬虫攻防大赛 第五题 js混淆 乱码增强 中 本篇文章某个流程出了问题 即 直接贴代码 最后可能返回40
  • eclipse怎么查看开发包jar里源代码

    最近我打算学习一下谷歌的类库Guava 下载了Guava r09 jar包及其源码 为了可以方面的 看其源码 我将其源码导入 下面是导入的方法 我用的是eclipse 在Eclipse查看开发包jar源码的方法如下 1 选择项目 右键中单击
  • QDialog的相关API函数

    目录 常用的一些 API 函数 QDialog 的子类 QMessageBox QFileDialog QFont 字体类 QColorDialog QInputDialog QProgressDialog 总结 QDialog是Qt框架中
  • 单片机之瑞萨RL78 串口通信的例子

    瑞萨RL78 串口通信 瑞萨RL78 G1D单片机的串口收发数据的例子 在此示例中 我们将使用串口0 波特率为9600 include rl78g1d h define UART0 RECEIVE BUFFER U0RBR define U
  • SpringBoot集成Hasor-Dataway数据查询接口

    目录 一 前言 1 Hasor Core Core 容器框架 设计思想 特性 2 Hasor Web Web 框架 3 Hasor DB JDBC 框架 特性 4 Hasor DataQL DataQL 服务查询引擎 设计思想 特性 数据类
  • python中print的本质_python数据分析、挖掘常用工具,让你看到不一样的数据分析...

    Python语言 简要概括一下Python语言在数据分析 挖掘场景中常用特性 列表 可以被修改 元组 不可以被修改 字典 结构 集合 同数学概念上的集合 函数式编程 主要由lambda map reduce filter 构成 Python
  • 用两个stack实现queue

    stack和queue都是一种线性结构 要用stack实现queue的push和pop方法 我们首先需要了解下这两种结构的特点 stack 数据先进后出 queue 数据先进先出 我们记两个stack分别是head tail 我们的想法是这
  • Vue3中toRef函数与toRefs函数

    在Vue 3中 toRef和toRefs用于处理响应式数据 toRef函数接受一个响应式对象和一个键 返回一个只读的Ref对象 这意味着当原始数据发生变化时 toRef创建的Ref对象也会更新 toRefs函数接受一个响应式对象 react