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

toRefs、storeToRefs实际应用

目录

一、问题

二、原因及解决方法

三、总结


一、问题

1. 通过store中的一个变量来控制  是否显示某条数据

2. 直接使用v-if,但是发现很相似的写法。一个地方有问题,一个地方没有问题。很是奇怪。

二、原因及解决方法

1.写法一 : 通过props传递 store中的数据, 控制 div显示正常

2. 直接在当前组件中使用store中的数据判断:修改hiddenPintuan的值,页面无法及时更新,失去响应式

3. 只测试了 写法一,以为响应式不会丢失。为什么会这样呢? 

4.仔细分析,最终得出结论

        1)写法一:因为useUserStore从父组件中传递到子组件(写在template中的props),根据vue的响应式原理为了简化对dom操作的代码,此时useUserStore在底层是被proxy代理的,所以当useUserStore的属性变化时会动态更新,所以 useUserStore.hiddenPintuan 保持了响应式。

   2)写法二:因为直接解构了useUserStore中的属性,并且没有子组件使用到useUserStore,所以失去了响应式

   3)写法一如果 变更成 直接使用解构的hiddenPintuan也是无效的,因为解构使得hiddenPintuan和useUserStore失去了联系

5.解决方法

1. 对于 store使用 storeToRefs解构数据,就能保持响应式

    当然使用ToRefs也可以,只是因为方法不需要保持响应式,storeToRefs对方法做了过滤,避免了一些意外的错误,性能更好一些

2.对于普通数据使用 ToRefs解构数据,来保持响应式

三、总结

1.恍然大悟🤐,实践才能知道知识的真实含义

2. storeToRefs,toRefs都是用来保证解构 reactive数据时,解构出来的数据能够保持响应式storeToRefs是专门给 store数据使用的, 解构时不会为方法添加响应式

3. props传参携带原始 reactive数据(直接传reactive对象或者reactiveObj.xxx)时,能够自动保持响应式

/*

希望对你有帮助!

如有错误,欢迎指正,谢谢!

*/

http://www.dtcms.com/a/330561.html

相关文章:

  • 分布式系统架构设计模式:从微服务到云原生
  • Flutter sqflite插件
  • Day57--图论--53. 寻宝(卡码网)
  • Nacos-4--Nacos1.x长轮询的理解
  • PiscTrace基于YOLO追踪算法的物体速度检测系统详解
  • 【软考中级网络工程师】知识点之入侵防御系统:筑牢网络安全防线
  • 【入门级-算法-2、入门算法:模拟法】
  • 解决“Win7共享文件夹其他电脑网络无法发现共享电脑名称”的问题
  • 融合服务器助力下的电视信息发布直播点播系统革新
  • 服务器装两个cpu
  • 1780. 判断一个数字是否可以表示成三的幂的和
  • MongoDB 从入门到生产:建模、索引、聚合、事务、分片与运维实战(含 Node.js/Python 示例)
  • 基于现代 C++ 的湍流直接数值模拟 (DNS) 并行算法优化与实现
  • 9.【C++进阶】继承
  • 河南萌新联赛2025第(五)场:信息工程大学”(补题)
  • QLab Pro for Mac —— 专业现场音频与多媒体控制软件
  • Boost库中Pool 基础内存池(boost::pool<>)的详细用法解析和实战应用
  • filezilla mac新版本MacOS-12.6.3会自动进入全屏模式BUG解决方法
  • 图论Day2学习心得
  • 支持pcm语音文件缓存顺序播放
  • springBoot+knife4j+openapi3依赖问题参考
  • 图灵测试:人工智能的“行为主义判据”与哲学争议
  • 计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
  • 浏览器环境下AES-GCM JavaScript 加解密程序
  • Vue Vant应用-数据懒加载
  • Docker + Cronicle + Traefik 搭建服务器计划任务工具
  • Vue3从入门到精通: 4.2 Vue Router路由守卫与权限控制深度解析
  • uni-app 小程序跳转小程序
  • rn入口文件setup.js解读
  • JS 解构赋值语法