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

vue3响应式丢失解决办法(三)

vue3的响应式的理解,与普通对象的区别(一) 

vue3 分析总结响应式丢失问题原因(二)

经过前面2篇文章,知道了响应式为什么丢失了,但是还是碰到了丢失情况,并且通过之前的内容还不能解决。这里要解决响应式丢失问题需要用到几个函数:toRef、toRefs与storeToRefs。

const state = reactive({a: 1,b: 2
});

比如上面一个响应式对象state ,该对象在其他组件或者页面需要修改属性a的值,如何保证响应性不丢失?

通过 第二篇文章,我们知道state.a 返回的是一个普通对象,而不是代理对象,即没有响应性。如果直接ref(state.a) 是可以创建一个ref对象,但是修改这个对象的值,并不会修改state.a。此时如果只根据前面2篇文章,是无法解决的。但前面知识可以让我们知道原理,以及为什么没有响应性。即获取不到正确的代理对象。

toRef和toRefs使用如下:

import { reactive, toRefs } from 'vue';const state = reactive({a: 1,b: 2
});const { a, b } = toRefs(state);const aRef = toRef(state, 'a');// 现在 a 和 b 以及 aRef  都是 ref 对象,可以单独被响应式地处理

storeToRefs如下:

import { useStore } from 'vuex';
import { storeToRefs } from 'vuex';export default {setup() {const store = useStore();const { count } = storeToRefs(store.state); // 将 count 转换为 ref// 现在 count 可以被单独响应式地处理return { count };}
}

主要区别:

  • 用途toRef、toRefs 用于将普通的响应式对象(例如由 reactive 创建的对象)的属性转换为 ref,而 storeToRefs 用于将状态转换为 ref,使其在组合式 API 中更易于使用。

  • 来源toRef、toRefs 是 Vue 3 的全局 API,而 storeToRefs 是状态管理的特定功能。

  • 适用场景:使用 toRef、toRefs 可以让你在任何响应式对象上工作,而 storeToRefs 是为了更好地集成状态管理 和 Vue 3 的组合式 API。

总结

选择使用 toRef、toRefs 还是 storeToRefs 取决于你的具体需求和使用的库。如果你只是需要在一个普通的响应式对象上工作,使用 toRefs 就足够了。而如果你在使用状态管理并希望在组合式 API 中更方便地访问 store 的状态,那么 storeToRefs 会是一个更好的选择。

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

相关文章:

  • BY组态:构建灵活、可扩展的自动化系统
  • 2025 (ISC)²CCSP 回忆录
  • 强化学习笔记7——DDPG到TD3
  • win10 系统 自定义Ollama安装路径 及模型下载位置
  • -bash:/usr/bin/rm: Argument list too long 解决办法
  • 内容中台重构企业内容管理流程驱动智能协作升级
  • python实现YouTube关键词爬虫(2025/02/11)
  • 【效率技巧】怎么做思维导图||数学思维||费曼学习法
  • LabVIEW与USB设备开发
  • 动态规划LeetCode-416.分割等和子集
  • 云原生(五十五) | ECS中自建数据库迁移到RDS
  • 【吾爱出品】 视频批量分段工具
  • HTML【详解】input 标签
  • 二叉搜索树的实现(C++)
  • vue2老版本 npm install 安装失败_安装卡主
  • 【MySQL】索引篇
  • Arduino 第十六章:pir红外人体传感器练习
  • 鸿蒙面试题
  • Rust 语言入门(一):打印与格式化输出
  • vue3.x 的 toRef详细解读
  • wordpress资讯类网站整站打包
  • GitHub基本操作及Git简单命令
  • 记一次MySQL故障解决
  • DeepSeek-R1私有化部署教程 | Linux服务器搭建AI大语言模型
  • 「软件设计模式」桥接模式(Bridge Pattern)
  • 【Flink快速入门-5.流处理之多流转换算子】
  • react传递函数与回调函数原理
  • 华为云kubernetes基于keda自动伸缩deployment副本(监听redis队列长度)
  • Spring源码分析のBean扫描流程
  • Ubuntu安装docker:docker-desktop : 依赖: docker-ce-cli 但无法安装它、无法定位软件包 docker-ce-cli