当前位置:首页 > 科技  > 软件

Vue3 中有些场景,真不想用 Pinia !

来源: 责编: 时间:2024-04-02 17:18:52 272观看
导读大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~背景图片Pinia 现阶段是 Vue3 最火的一个状态管理库了,很多人用 Pinia 来:缓存一些请求回来的数据管理一些可以全局共用的数据

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~Qpz28资讯网——每日最新资讯28at.com

背景

图片图片Qpz28资讯网——每日最新资讯28at.com

Pinia 现阶段是 Vue3 最火的一个状态管理库了,很多人用 Pinia 来:Qpz28资讯网——每日最新资讯28at.com

  • 缓存一些请求回来的数据
  • 管理一些可以全局共用的数据

其实最重要的一点就是:缓存一些请求回来的数据Qpz28资讯网——每日最新资讯28at.com

毕竟,前端只是静态页面,你得需要去请求数据,才能让你的页面动态去展示你想展示的东西Qpz28资讯网——每日最新资讯28at.com

就比如我想要通过请求去获取登录用户的用户信息,并展示在页面,那么在 Pinia 中我会这么写Qpz28资讯网——每日最新资讯28at.com

图片图片Qpz28资讯网——每日最新资讯28at.com

并且在页面中去调用对应的请求方法,获取数据,并且如果需要在请求过程中加一个过渡的 loading 阶段的话,那么还需要再页面中去维护几个 loading 变量,以达到我们想要的目的Qpz28资讯网——每日最新资讯28at.com

图片图片Qpz28资讯网——每日最新资讯28at.com

其实这是非常麻烦的一件事,那如果有十个页面,岂不是就得维护几十个 loading 变量?这其实是很多开发者非常苦恼的事情Qpz28资讯网——每日最新资讯28at.com

vue-query

其实不一定所有场景都用到 Pinia,其实我们想要的目的很简单:数据缓存 + loadingQpz28资讯网——每日最新资讯28at.com

那么有什么办法能让我们缓存请求的数据,又能不用我们自己维护 loading 变量呢?Qpz28资讯网——每日最新资讯28at.com

或许我们可以试试 vue-query 这个库Qpz28资讯网——每日最新资讯28at.com

pnpm i vue-query

在 main.ts 中去注册全局Qpz28资讯网——每日最新资讯28at.com

图片图片Qpz28资讯网——每日最新资讯28at.com

接着在页面中使用,可以看到,我故意在页面中去写两次请求Qpz28资讯网——每日最新资讯28at.com

图片图片Qpz28资讯网——每日最新资讯28at.com

但是他会有缓存效果,实际只发了一次请求,那是因为 useQuery 第一个参数是传一个 key ,这个 key 会标识请求的唯一性,你想要请求两次的话,可以把 key 设置成不一样的即可~Qpz28资讯网——每日最新资讯28at.com

图片图片Qpz28资讯网——每日最新资讯28at.com

总结

先来看看官方文档中怎么说:https://tanstack.com/query/v4/docs/framework/vue/guides/does-this-replace-client-stateQpz28资讯网——每日最新资讯28at.com

vue-query 只适用于存储从服务端获取的数据,如果有另外的数据需要存储还是要用到 pinia,但是这种数据是比较少的,这样也可以使得 pinia 中的代码量减少很多并简洁。当然这里介绍的 vue-query 的 api 是最简单的,你能想到的功能它基本都有,感兴趣的可以查看文档。Qpz28资讯网——每日最新资讯28at.com

趋势

在 react 中使用 swr、react-query 是大势所趋,可以从 npm 下载量来看出来。相信今后在 vue 中 vue-query 也会有越来越多的使用,因为另外三大框架都是跟随 react 走的 hooks 的思想。Qpz28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-80841-0.htmlVue3 中有些场景,真不想用 Pinia !

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: .NET中异步操作的选择:Task vs. ValueTask的区别与性能优化

下一篇: 小小ArrayList,居然这么多坑?!

标签:
  • 热门焦点
  • Raft算法:保障分布式系统共识的稳健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可复制、可冗余、可容错”)的首字母缩写。Raft算法是一种用于在分布式系统
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事“起猛了,我能看得懂日语了”。“为什么日本人说话我能听懂?”“中文不像中文,日语不像日语,但是我竟然看懂了”…&hell
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克·扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:“不仅
Top