服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - vue.js - Vue3 中有些场景,真不想用 Pinia !

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

2024-04-02 14:33Go语言圈 vue.js

Pinia 现阶段是 Vue3 最火的一个状态管理库了,很多人用 Pinia 来:缓存一些请求回来的数据管理一些可以全局共用的数据其实最重要的一点就是:缓存一些请求回来的数据毕竟,前端只是静态页面,你得需要去请求数据,才能让你的

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

背景

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

Pinia 现阶段是 Vue3 最火的一个状态管理库了,很多人用 Pinia 来:

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

其实最重要的一点就是:缓存一些请求回来的数据

毕竟,前端只是静态页面,你得需要去请求数据,才能让你的页面动态去展示你想展示的东西

就比如我想要通过请求去获取登录用户的用户信息,并展示在页面,那么在 Pinia 中我会这么写

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

并且在页面中去调用对应的请求方法,获取数据,并且如果需要在请求过程中加一个过渡的 loading 阶段的话,那么还需要再页面中去维护几个 loading 变量,以达到我们想要的目的

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

其实这是非常麻烦的一件事,那如果有十个页面,岂不是就得维护几十个 loading 变量?这其实是很多开发者非常苦恼的事情

vue-query

其实不一定所有场景都用到 Pinia,其实我们想要的目的很简单:数据缓存 + loading

那么有什么办法能让我们缓存请求的数据,又能不用我们自己维护 loading 变量呢?

或许我们可以试试 vue-query 这个库

pnpm i vue-query

在 main.ts 中去注册全局

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

接着在页面中使用,可以看到,我故意在页面中去写两次请求

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

但是他会有缓存效果,实际只发了一次请求,那是因为 useQuery 第一个参数是传一个 key ,这个 key 会标识请求的唯一性,你想要请求两次的话,可以把 key 设置成不一样的即可~

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

总结

先来看看官方文档中怎么说:https://tanstack.com/query/v4/docs/framework/vue/guides/does-this-replace-client-state

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

趋势

在 react 中使用 swr、react-query 是大势所趋,可以从 npm 下载量来看出来。相信今后在 vue 中 vue-query 也会有越来越多的使用,因为另外三大框架都是跟随 react 走的 hooks 的思想。

原文地址:https://mp.weixin.qq.com/s/1w8tgzpjr2Hsj1bmswNO8Q

延伸 · 阅读

精彩推荐
  • vue.jsVue实现圆环进度条的示例

    Vue实现圆环进度条的示例

    这篇文章主要介绍了Vue实现圆环进度条的示例,帮助大家更好的理解和使用前端框架进行开发,感兴趣的朋友可以了解下...

    豫见陈公子5982022-01-17
  • vue.jsvue3.0中使用element的完整步骤

    vue3.0中使用element的完整步骤

    这篇文章主要给大家介绍了关于vue3.0中使用element的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    浩星6502022-02-10
  • vue.jsVue包大小优化的实现(从1.72M到94K)

    Vue包大小优化的实现(从1.72M到94K)

    这篇文章主要介绍了Vue包大小优化的实现(从1.72M到94K),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    ZYLAB11692022-01-20
  • vue.js关于vuex强刷数据丢失问题解析

    关于vuex强刷数据丢失问题解析

    这篇文章主要介绍了关于vuex强刷数据丢失问题解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    _奔跑的企鹅4932022-02-27
  • vue.jsVue实现小购物车功能

    Vue实现小购物车功能

    这篇文章主要为大家详细介绍了Vue实现小购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    你别皱眉9512021-12-16
  • vue.js详解Vue的异步更新实现原理

    详解Vue的异步更新实现原理

    这篇文章主要介绍了Vue的异步更新实现原理,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下...

    Liqiuyue4982021-12-16
  • vue.jsvue 实现图片懒加载功能

    vue 实现图片懒加载功能

    这篇文章主要介绍了vue 实现图片懒加载功能的方法,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下...

    熊大的小跟班11522021-12-23
  • vue.js手动实现vue2.0的双向数据绑定原理详解

    手动实现vue2.0的双向数据绑定原理详解

    这篇文章主要给大家介绍了关于手动实现vue2.0的双向数据绑定原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

    我还是我…5452022-01-19