Pinia组合式API使用详解
创作时间:
作者:
@小白创作中心
Pinia组合式API使用详解
引用
CSDN
1.
https://blog.csdn.net/LiliRush/article/details/140854304
Pinia是Vue生态系统中一个非常流行的状态管理库,它提供了组合式API,使得状态管理更加灵活和强大。本文将通过具体的代码示例,详细介绍如何使用Pinia的组合式API进行状态管理。
1. 创建Pinia实例并配置持久化插件
在stores/index.ts
文件中,我们首先需要创建Pinia实例,并配置持久化插件:
import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'
export const pinia = createPinia()
// 把自动存储持久化挂载到pinia上
pinia.use(persist)
// 统一导出从本页面,在用时就可以直接导入本页
export * from './modules/user'
export * from './modules/consult'
2. 定义模块
接下来,在stores/modules/consult.ts
文件中,我们定义了一个名为Consult
的store模块:
import { defineStore } from 'pinia'
import { ref } from 'vue'
import type { NewConsult, IllnessType } from '@/types/consult'
import type { ConsultType } from '@/enum/index'
// defineStore('数据中心名',()=>{放变量和方法})
export const useConsultStore = defineStore(
'Consult',
() => {
// 数据中心变量值
const Consult = ref({} as NewConsult)
// 存选择的专家还是普通
const ConsultType = (type: ConsultType) => {
Consult.value.type = type
}
// 3; 设置极速问诊级别
const setIllnessType = (type: 0 | 1) => (Consult.value.illnessType = type)
// 4. 设置科室
const setDep = (id: string) => (Consult.value.depId = id)
// 5. 设置病情描述
const setIllness = (illness: IllnessType) => {
Consult.value.illnessDesc = illness.illnessDesc
Consult.value.illnessTime = illness.illnessTime
Consult.value.consultFlag = illness.consultFlag
Consult.value.pictures = illness.pictures
}
// 6. 设置患者
const setPatient = (id: string) => (Consult.value.patientId = id)
// 7. 设置优惠券
const setCunpon = (id?: string) => (Consult.value.couponId = id)
// 8. 清空记录
const clear = () => (Consult.value = {})
// 导出
return {
Consult,
ConsultType,
setIllnessType,
setDep,
setIllness,
setPatient,
setCunpon,
clear
}
},
// 持久化,存到本地
{ persist: true }
)
3. 在组件中使用Pinia store
在需要使用Pinia store的组件中,可以通过以下方式导入并使用:
import { useUser } from '@/stores'
const store = useUser()
store.user?.token
总结
通过以上步骤,我们可以看到Pinia的组合式API使用起来非常灵活。在实际开发中,还可以使用computed
计算属性来创建getter,使用async/await
来处理异步操作。Pinia的这些特性使得状态管理变得更加简单和直观。
热门推荐
病假规定中关于医疗期的规定有哪些?
病假和医疗期期间工资发放标准有何差异?
定格动态:如何用前端实现视频帧截图
美国法学英语学习的必要性与方法
2025年本科扩招学校名单汇总:985大学扩招了多少人?
这波高校扩招,到底是为什么?
如何自主购买工伤保险并确保权益?这种工伤保险有哪些保障范围?
牛郎星和织女星:天鹰座与天琴座的双子星
五种泰式按摩,你最适合哪一种?
2025年食堂管理系统的变革与挑战
北方菜园种植指南(适宜北方生长的蔬菜推荐)
老觉得胸闷,打嗝会缓解?这些原因和建议请收好
情商 智商 灵商
吃完韭菜后打嗝的原因及处理方法
美国科学家惊人新理论:宇宙的起源竟是由高级文明创造?
难怪裘千仞如此强横,五绝都不敢得罪他,原来他后台可踏平五绝势力
冷却液应该加到什么位置?
维生素AD怎么补,意见不同听谁的?
【品牌定位怎么写】品牌定位图+范例+分析|6步打造品牌!
单位净值怎么计算?如何准确计算单位净值并分析其变化原因?
科学界的“大女主”丨王承书
椰子汁的功效与作用:补水、补电解质、护心
生辰八字:中国传统命理学的智慧
2025年盐城社保缴费标准出炉:个人和公司各承担多少?
英语零基础怎么自学 有哪些学习方法
现场安全管理:一定、二理、三查、四管、五到
从汉承秦制看两朝兴衰:秦短命与汉长久的历史启示
2025年亚洲20大富豪家族揭晓:香港占5席,首富资产超过6500亿元
普鲁斯特效应:气味如何触发我们的记忆?
普鲁斯特效应:气味如何唤醒我们的记忆?