我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue中的ref、toRef与toRefs怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue中的ref、toRef与toRefs怎么使用

这篇文章主要介绍了Vue中的ref、toRef与toRefs怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的ref、toRef与toRefs怎么使用文章都会有所收获,下面我们一起来看看吧。

一、ref

ref 函数,可以把简单数据类型包裹为响应式数据(复杂类型也可以),注意 JS 中操作值的时候,需要加 .value 属性,模板中正常使用即可。

举个例子:

ref包装基本类型数据

App.vue

<template>  <div class="container">      <div>{{ name }}</div>      <button @click="updateName">修改数据</button>  </div></template><script>  import { ref } from 'vue'  export default {      name: 'App',      setup() {          const name = ref('初映')          const updateName = () => {              name.value = '初映CY的前说'          }          return { name, updateName }      },  }</script>

Vue中的ref、toRef与toRefs怎么使用

可看见写法与reactive()一样,不过是在js中书写的时候需要额外加一个.value即可

ref包装复杂类类型数据

注意:ref 其实也可以包裹复杂数据类型为响应式数据,一般对于数据类型未确定的情况下推荐使用 ref,例如后端返回的数据。

<template>    <div class="container">        <div>{{ data?.name }}</div>        <button @click="updateName">修改数据</button>    </div></template><script>    import { ref } from 'vue'    export default {        name: 'App',        setup() {            // 初始值是 null            const data = ref(null)            setTimeout(() => {                // 右边的对象可能是后端返回的                data.value = {                    name: '初映',                }            }, 1000)            const updateName = () => {                data.value.name = 'CY'            }            return { data, updateName }        },    }</script>

Vue中的ref、toRef与toRefs怎么使用

如何选择?

ref()和reactive()都是Vue.js3.0中提供的两个响应式API。

ref()主要用于创建一个响应式数据,它会将一个普通的JavaScript对象转换为一个响应式的对象,从而使数据的变化可以被Vue实例所追踪,当数据发生变化时,Vue会自动更新相关视图。ref()创建的响应式数据可以通过.value属性来访问和修改。

reactive()则主要用于创建一个响应式对象,可以用作包含多个值的状态对象,通常用于管理复杂的状态。它可以将一个普通的JavaScript对象转换为一个响应式对象,并且支持嵌套属性,即使嵌套属性发生变化也会被Vue实例所追踪。当响应式对象中有任何一个属性发生变化时,Vue也会自动更新相关的视图。

当你明确知道需要包裹的是一个对象,那么推荐使用 reactive,其他情况使用 ref 即可。

Vue3.2 之后,更推荐使用 ref,性能得到了很大的提升。

二、toRef

toRef 函数的作用:转换响应式对象中某个属性为单独响应式数据,并且转换后的值和之前是关联的(ref 函数也可以转换,但值非关联)。

先看下面这个例子:

<template>  <div class="container">      <h3>name: {{ obj.name }} age: {{obj.age}}</h3>      <button @click="updateName">修改数据</button>  </div></template><script>  import { reactive } from 'vue'  export default {      name: 'App',      setup() {          const obj = reactive({              name: '初映',              age: 18,              address: '江西',              sex: '男',          })          const updateName = () => {              obj.name = '初映CY的前说'          }          return { obj, updateName }      },  }</script>

Vue中的ref、toRef与toRefs怎么使用

这样写也可以将数据进行更改成为响应式的数据,但是带来了两个问题:

问题 1:模板中都要使用 obj. 进行获取数据,麻烦。

问题 2:明明模板中只用到了 name 和 age,却把整个 obj 进行了导出,没必要,性能浪费。

<template>  <div class="container">      <h3>name: {{ name }} </h3>      <button @click="updateName">修改数据</button>  </div></template><script>  import { reactive,toRef  } from 'vue'  export default {      name: 'App',      setup() {          const obj = reactive({              name: '初映',              age: 18,              address: '江西',              sex: '男',          })          const name = toRef(obj, 'name')          const updateName = () => {              obj.name = '初映CY的前说'          }          return { name, updateName }      },  }</script>

这样把我们需要的数据放进return即可,节约了性能与在模板中的写法,有点点了&lsquo;按需导入&rsquo;的意思

三、torefs

toRefs 函数的作用:转换响应式对象中所有属性为单独响应式数据,并且转换后的值和之前是关联的。

<template>  <div class="container">      <h3>{{ name }} {{ age }}</h3>      <button @click="updateName">修改数据</button>  </div></template><script>  import { reactive, toRefs } from 'vue'  export default {      name: 'App',      setup() {          const obj = reactive({              name: '初映',              age: 10,          })          const updateName = () => {              obj.name = '初映CY的前说'              obj.age = 18          }          return { ...toRefs(obj), updateName }      },  }</script>

Vue中的ref、toRef与toRefs怎么使用

toRefs将我们所有的响应式数据都进行return出去了,届时直接用上数据名称即可,记得加上&hellip;喔

关于“Vue中的ref、toRef与toRefs怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue中的ref、toRef与toRefs怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue中的ref、toRef与toRefs怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue中的ref、toRef与toRefs怎么使用

这篇文章主要介绍了Vue中的ref、toRef与toRefs怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的ref、toRef与toRefs怎么使用文章都会有所收获,下面我们一起来看看吧。一、r
2023-07-05

vue3中的ref、toRef、toRefs怎么使用

这篇文章主要讲解了“vue3中的ref、toRef、toRefs怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3中的ref、toRef、toRefs怎么使用”吧!一、refre
2023-07-06

简单聊聊Vue中的ref,toRef与toRefs

这篇文章主要是想和大家来简单聊聊Vue中的ref、toRef、toRefs这三个函数的使用与区别,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-05-14

Vue中ref、reactive、toRef、toRefs、$refs的基本用法总结

这篇文章主要给大家介绍了关于Vue中ref、reactive、toRef、toRefs、$refs的基本用法,以及他们之家的区别,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

vue3中的ref,toRef,toRefs三个的作用使用小结

Vue3中ref、reactive、toRef、toRefs都是与响应式数据相关的,就此做一份笔记作为区别,本文重点给大家讲解vue3中的ref,toRef,toRefs三个是干嘛的,有什么作用,感兴趣的朋友跟随小编一起看看吧
2022-11-16

VueJs中toRef与toRefs函数怎么使用

这篇文章主要介绍了VueJs中toRef与toRefs函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇VueJs中toRef与toRefs函数怎么使用文章都会有所收获,下面我们一起来看看吧。正文ref
2023-07-05

Vue的toRef、toRefs和toRaw函数如何使用

今天小编给大家分享一下Vue的toRef、toRefs和toRaw函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-07-05

Vue3中的toRef和toRefs怎么使用

今天小编给大家分享一下Vue3中的toRef和toRefs怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。toRef
2023-07-05

Vue3中toRef和toRefs函数怎么使用

toRef函数使用首先呢,toRef函数有两个参数。toRef(操作对象,对象属性)好,接下来我们使用toRef函数写一个案例,还是和以前一样,页面展示一个用户的名称和年纪。toReftoRefs函数姓名:{{boy_toRef}}年龄:{{boy.age}}import{toRef}from&#39;vue&#39;exportdefault{setup(){constboy={//创建一个用户对象name:&#39;我是????????.&#39;,//用户名
2023-05-16

Vue3中toRef与toRefs的区别是什么

这篇文章主要讲解了“Vue3中toRef与toRefs的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3中toRef与toRefs的区别是什么”吧!作用:创建一个ref对象,
2023-06-29

vue3 中的toRef函数和toRefs函数的基本使用

这篇文章主要介绍了vue3 toRef函数和toRefs函数,文中介绍了ref和toRef的区别,ref本质是拷贝,修改响应式数据不会影响原始数据,toRef的本质是引用关系,修改响应式数据会影响原始数据,需要的朋友可以参考下
2022-11-16

vue中ref的使用问题怎么解决

本文小编为大家详细介绍“vue中ref的使用问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中ref的使用问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue的ref(this.$r
2023-06-29

Vue Ref全家桶怎么使用

今天小编给大家分享一下Vue Ref全家桶怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. ref在Vue3中,r
2023-07-05

React中的ref怎么使用

这篇文章主要介绍“React中的ref怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React中的ref怎么使用”文章能帮助大家解决问题。1. ref 的理解与使用对于 Ref 的理解,要从
2023-07-04

Vue中Ref与Reactive的区别是什么

今天小编给大家分享一下Vue中Ref与Reactive的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Ref与Re
2023-06-05

Vue组件化ref,props, mixin怎么使用

这篇文章主要介绍“Vue组件化ref,props, mixin怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue组件化ref,props, mixin怎么使用”文章能帮助大家解决问题。1、
2023-06-30

vue3中的ref、reactive怎么使用

本篇内容主要讲解“vue3中的ref、reactive怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3中的ref、reactive怎么使用”吧!reactive()基本用法在 Vu
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录