当前位置: 首页 > news >正文

vue3 toRefs详解

简介

toRefs函数的作用是将响应式对象中的所有属性转换为单独的响应式数据,对象成为普通对象,并且值是关联的。在这个过程中toRefs会做以下两件事:

  1. 把一个响应式对象转换成普通对象
  2. 对该普通对象的每个属性都做一次ref操作,这样每个属性都是响应式的 说明:

a、reactive 对象取出的所有属性值都是非响应式的,而利用 toRefs 可以将一个响应式 reactive
b、 对象的所有原始属性转换为响应式的 ref 属性。

c、reactive的响应式功能是赋值给对象,如果展开对象,会让数丢失响应的能力

使用toRefs可以保证对象展开的每个属性都是响应式的

应用场景:

  • 展开响应式对象时,想使用响应式对象中的多个或者所有属性做为响应式数据。
  • 当函数返回响应式对象时,toRefs非常有用,这样消费组件就可以在不丢失响应式的情况下对返回的对象进行分解使用。

示例:展开运算符

<template><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><h2>地址:{{addr.province}}-{{addr.city}}</h2><button @click="name='zhangsan'">修改名字</button>
</template>
<script lang='ts'>import { reactive } from 'vue'export default {setup() {const user = reactive<any>({name: '张三',age: 19,addr: {province: '河南',city: '郑州'}})return {...user // 展开运算符}}}
</script>

注意:响应式对象的处理,是加给对象的,如果对对象做了展开操作,那么就会丢失响应式的效果。所以上面代码,单击button时,不能改变页面显示效果。

示例:

<template><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><h2>地址:{{addr.province}}-{{addr.city}}</h2><button @click="name='zhangsan'">修改名字</button>
</template>
<script lang='ts'>import { reactive, toRefs } from 'vue'export default {setup() {const user = reactive<any>({name: '张三',age: 19,addr: {province: '河南',city: '郑州'}})return {...toRefs(user)}}}
</script>

本次单击按钮可以实现修改效果。

http://www.lryc.cn/news/29045.html

相关文章:

  • Spring——AOP是什么?如何使用?
  • 【微服务】认识微服务
  • 【独家】华为OD机试 C 语言解题 - 最长连续子串
  • 【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)
  • 【FMCW 01】中频IF信号
  • 【蓝桥杯试题】暴力枚举题型
  • I.MX6ULL_Linux_系统篇(22) kernel移植
  • UE实现相机聚焦物体功能
  • 算法系列之数值积分的目的
  • 【2.4 golang中循环语句for】
  • 代码随想录 动态规划||343 96
  • Python---正则表达式
  • Unity入门精要02---纹理
  • 【Day1】一小时入门 python 基础,从安装到入门
  • 2D图像处理:相机标定
  • windows 下 python 和repo 下载安装环境变量配置
  • jsp进阶
  • 模块化CommonJS、AMD、CMD、ES6
  • Python GUI界面编程-初识
  • 【Servlet篇4】cookie和session
  • 考研流程,可以进来转一转(考研你不知道的事情)(详细版)
  • 3.2 LED闪烁流水灯蜂鸣器
  • 刷题笔记3 | 203. 移除链表元素、707设计链表,206.反转链表
  • [一篇读懂]C语言十一讲:单链表的删除和单链表真题实战
  • 【C++初阶】list的使用
  • HTML 布局
  • 如何在虚拟机中安装ikuai软路由系统
  • Java 多线程 --- 线程协作 wait/notify
  • 【PyTorch】教程:torch.nn.Hardsigmoid
  • 【手把手一起学习】(八) Altium Designer 20修改和自定义原理图标题栏