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的这些特性使得状态管理变得更加简单和直观。
热门推荐
砂岩里的秘密:孔隙网络模型大揭秘
当创意遇见熊猫|熊猫工厂:可以是文创玩具,也可以是生活点滴
七日世界养殖攻略:从入门到精通的繁育指南
如何进行饮品店市场分析?六大维度全面解析
秋冬减压食谱大揭秘!
大学生心理健康:八大诱因与应对之道
速动比率 – 通过速动比率分析企业的财务流动性
面对挑战时如何做到尽力:心态与行动的调整
三周期极小曲面Diamond结构双流体换热数值模拟
Excel VBA实战:掌握排序算法,提升职场效率
夜班排班如何合理安排?夜班排班表怎么制作?
AI生成的文章如何避免查重
职场人际复杂?教你几招搞定!
程序员应该遵守的开发原则之单一职责
网络药理学助力中医攻克自身免疫疾病
隆基绿能预亏超82亿元光伏周期之困何解
76人后场新援表现出色,核心球员失常成败因
关帝灵签:从汉地到藏传佛教的神秘之旅
新能源车与燃油车谁也不服谁,现在买哪一种车型才不是智商税?
低嘌呤饮食:缓解痛风性关节炎的新潮流
这6部电影不是亲人,胜似亲人,后面3部看哭了!
高情商助你构建和谐职场关系
告别语法困惑:轻松掌握陈述句的灵活变换
无人机致天津机场航班延误3000旅客受影响,律师:飞手或担刑责
华佗的医学贡献
抑郁症患者情绪不稳怎么办
智能客服助手的主要应用场景有哪些?
情感共鸣:文章写作中的情感表达与读者连接
从心理学角度看《大时代》丁蟹的偏执型人格
跨境电商平台大PK:主流电商平台与独立站的优劣分析与选择