【vue3|第7期】 toRefs 与 toRef 的深入剖析

2024-06-06 14:44

本文主要是介绍【vue3|第7期】 toRefs 与 toRef 的深入剖析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

日期:2024年6月6日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


文章目录

  • 一、前言
  • 二、toRefs
    • 1、使用场景
    • 2、响应式维护
  • 三、toRef
    • 1、使用场景
    • 2、响应式维护
  • 四、联系与区别
  • 五、结论


在这里插入图片描述


一、前言

Vue3 的响应式系统中,toRefstoRef 是两个非常有用的工具函数,它们用于将响应式对象的属性转换为单独的响应式引用。在本文中,我们将探讨这两个函数的联系与区别,并了解它们在实际开发中的应用场景。

二、toRefs

toRefs 函数用于将一个响应式对象的所有属性转换为单独的响应式引用。这个函数通常与解构赋值一起使用,以便我们可以轻松地访问响应式对象的每个属性。

1、使用场景

假设我们有一个响应式对象 state,包含 nameage 两个属性:

const state = reactive({name: 'Commas',age: 18
});

现在我们想解构这个对象,并保持每个属性的响应式。这时,toRefs 就派上用场了:

const { name, age } = toRefs(state);

这样,nameage 就成为了单独的响应式引用,我们可以直接使用它们,而不必担心失去响应式。

2、响应式维护

toRefs 创建的 refs 是对原始对象的“浅拷贝”,因此在操作这些refs时需要小心,以免影响到原始对象的响应性。

三、toRef

toRef 函数用于为源响应式对象的某个属性创建一个响应式引用。与 toRefs 不同的是,toRef 只能用于单个属性

1、使用场景

假设我们有一个响应式对象 state,包含 nameage 两个属性。现在我们只想为 name 属性创建一个响应式引用:

const name = toRef(state, 'name');

这样,name 就成为了 state.name 的响应式引用。我们可以直接修改 name.value,这个修改会反映到 state.name 上。

2、响应式维护

toRef 创建的 ref 是对特定属性的直接引用,它不会影响到原始对象的响应性结构。

四、联系与区别

  • toRefstoRef 都用于创建响应式引用
  • toRefs 用于将整个响应式对象的所有属性转换为响应式引用,而 toRef 只用于单个属性
  • toRefs 通常与解构赋值一起使用,方便同时访问多个属性,而 toRef 用于为单个属性创建响应式引用

五、结论

Vue3 中,toRefstoRef 是非常有用的工具函数,它们可以帮助我们更好地处理响应式数据。了解它们的联系与区别,可以帮助我们更灵活地应用它们,提高开发效率。


参考文章:

  • Vue.js

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/139485667

这篇关于【vue3|第7期】 toRefs 与 toRef 的深入剖析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036406

相关文章

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规