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

【vue】toRefs 和 toRef——如何在解构响应式对象时保持响应性

toRefs 和 toRef 是 Vue.js 框架中提供的 Composition API 的一部分,它们主要用于在 Vue 3 中解构响应式对象,同时保持其响应性。简单来说就是把一个响应式对象里的东西解构拿出来,并让其依然具备响应式。

这名字就很简单粗暴:

to Ref(s)——变成 响应式的

toref是把对象的某个属性变成响应式的,torefs是把对象的每个属性都变成响应式的

toRef

toRef 用于创建一个响应式的 ref 对象,其值指向另一个对象中的某个属性。这样,就可以在不丢失响应性的情况下,将这个属性单独拿出来使用

举例说明:

假设有一个响应式对象 state,我们想创建一个 ref 对象 nameRef,它的值是 state 对象中的 name 属性:

import { reactive, toRef } from 'vue';

const state = reactive({
  name: '张三',
  age: 25
});

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

// 当 state.name 改变时,nameRef.value 也会改变
state.name = '李四';
console.log(nameRef.value); // 输出 '李四'

 

toRefs

toRefs 用于将响应式对象转换为普通对象,其中每个属性都是指向原始对象相应属性的 ref。这样,可以解构整个对象而不丢失其响应性。

举例说明:

假设我们有一个响应式对象 state,我们想解构它的属性,但是保持其响应性:

import { reactive, toRefs } from 'vue';

const state = reactive({
  name: '张三',
  age: 25
});

// 使用 toRefs 解构 state
const { name, age } = toRefs(state);

// 现在我们可以单独使用 name 和 age,它们都是 ref 对象
console.log(name.value); // 输出 '张三'
console.log(age.value);  // 输出 25

// 改变 state 的属性,相应的 ref 也会更新
state.name = '李四';
console.log(name.value); // 输出 '李四'


http://www.kler.cn/a/392773.html

相关文章:

  • C++中的栈(Stack)和堆(Heap)
  • 结构体是否包含特定类型的成员变量
  • 11张思维导图带你快速学习java
  • 猿创征文|Inscode桌面IDE:打造高效开发新体验
  • 算法——二分查找(leetcode704)
  • 【Rust练习】21.动态数组 Vector
  • 免费,WPS Office教育考试专用版
  • 【初阶数据结构篇】插入、希尔、选择、堆排序
  • 约束(MYSQL)
  • github高分项目 WGCLOUD - 运维实时管理工具
  • A032-基于Spring Boot的健康医院门诊在线挂号系统
  • PCB+SMT线上报价系统+PCB生产ERP系统自动化拼板模块升级
  • 【网络安全】X-Forwarded-For漏洞成因及防范
  • 中断上下文及抢占标志位的检查——基于调度及锁举例
  • 数据库常用语法总结
  • 鸿蒙next版开发:相机开发-元数据(ArkTS)
  • SpringCloud篇(微服务)
  • [CKS] K8S AppArmor Set Up
  • AI 扩展开发者思维方式:以 SQL 查询优化为例
  • automa 浏览器自动化工具插件
  • 使用TaPas进行表格问答
  • 一文理解:结构化数据、非结构化数据、半结构化数据和元数据
  • 使用 start-local 脚本在本地运行 Elasticsearch
  • Pycharm打开终端时报错:Cannot open Local,Failed to start[powershell.exe]
  • 【论文复现】STM32设计的物联网智能鱼缸
  • 快速排序法