vue3中 | 使用Pinia 进行状态管理 | pinia优化重复请求

45 篇文章 2 订阅
43 篇文章 0 订阅

问题:当多次调用同一个接口实现渲染时,会重复发送请求。

解决:使用 Pinia 进行数据集中管理,再把数据下发给组件,以供使用。

(Pinia可以跨组件/页面共享状态。)

 

1. 用 Pinia 管理数据(多组件共享的数据)

/* 定义Store */
import { defineStore } from 'pinia'

export const useStore = defineStore('name',()=>{
    // 第一个参数是store的唯一标识/id
    // 定义数据 state、方法 action
    ...
    // 以对象的形式返回
    return {
        ...
    }
})

 

2. 组件中触发请求(优化重复请求:在父组件中触发)

以下是在vue3中使用setup语法糖,导入store,在调用,钩子挂起

<script setup>
import { useXXXStore } from '@/stores/categoryStore'
import { onMounted } from 'vue'

const categoryStore = useXXXStore()       // 调用store
onMounted(() => categoryStore.getCategory())    // vue3中 生命周期钩子,用于组件挂载到DOM之后执行的操作
</script>

 

3. 将数据下发给(要用到数据的)组件,模板中渲染

官方文档: Home | Pinia 中文文档 (web3doc.top)

参考:vue2的Mounted和vue3的onMounted,这两个钩子有何不同?_onmounted和mounted_小猫娃来啦的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值