Vue状态管理工具pinia的简单使用
创始人
2025-05-31 09:11:34
0

34. Vue状态管理工具pinia的简单使用

1. 介绍

Pinia 是一个 Vue 状态管理工具,它是 Vue 3 官方推荐的状态管理库之一。Pinia 的目标是提供一个简单、轻量级的状态管理解决方案,它基于 Vue 3 的新响应式 API 和新的组合式 API 构建,使用起来非常直观和自然。

2. pinia在vue3中的使用

  • 首先在项目中安装pinia,执行npm install pinia,然后在入口文件main.js中引入
  • 我们选择与 Vue 的选项式 API 类似的方式,传入一个带有 stateactionsgetters 属性的 Option 对象
  • 你可以认为 statestore 的数据 (data)gettersstore 的计算属性 (computed),而 actions 则是方法 (methods)
// main.js
import { createApp } from 'vue'
import { createPinia } from "pinia"
import App from './App.vue'
import './assets/main.css'const pinia = createPinia()
const app = createApp(App)
app.use(pinia)
app.mount('#app')
  • 创建一个store
// src/store/user.js
import { defineStore } from "pinia"export const useUserStore = defineStore({id: "user"
})
  • 定义state,并引入使用
// src/store/user.js
import { defineStore } from "pinia"export const useUserStore = defineStore({id: "user",state: () => {return {firstName: "Jack",lastName: "Joe",age: 18}}
})
// src/pages/user.vue

  • 定义getter并引入使用
// src/store/user.js
import { defineStore } from "pinia"export const useUserStore = defineStore({id: "user",state: () => {return {firstName: "Jack",lastName: "Joe",age: 18}},getters: {fullName(state) {return state.firstName + " " + state.lastName}}
})
// src/pages/user.vue

  • 定义action并使用,action中的方法可同步也可异步。
// src/store/user.js
import { defineStore } from "pinia"function apiGetData(name) {return new Promise((resolve, reject) => {setTimeout(() => {if(name === "Jack Joe") {resolve({ age: 18 })} else {reject({ msg: "查无此人!" })}}, 2000);})
}
export const useUserStore = defineStore({id: "user",state: () => {return {firstName: "Jack",lastName: "Joe",age: 18}},actions: {changeName(name) {[ this.firstName, this.lastName ] = name.split(" ")},async getUserData(name) {try {const res = await apiGetData(name)return res} catch(err) {return err}}},getters: {fullName(state) {return state.firstName + " " + state.lastName}}
})
// src/pages/user.vue


相关内容

热门资讯

安全生产月主题标语 安全生产月... 1 强化安全基础,推动安全发展2 加强班组安全管理,弘扬企业安全文化。3 安全发展,科学发展4 事故...
建筑工地安全标语100条 建筑... 1、安全第一 预防为主2、人人讲安全 安全为人人3、人人讲安全,事事为安全;时时想安全,处处要安全 ...
交通安全警句标语 交通安全警句... 1、醉(罪)在酒中,毁(悔)在杯中。2、十次肇事九次快,莫和死神去比赛。3、文明礼让安全在,瞬间麻痹...
最新或2023(历届)跨年QQ... 【心情签名说说】 想找个坚强的理由,可诸多的疼该如何一笑而过;想有个慰藉的港口,可真正懂你的人又有几...
交通安全横幅标语,交通安全横幅... 街道办悬挂在路口的交通安全横幅标语:一人出车全家念 一人平安全家福
SpringBoot高校餐厅缴... SpringBoot高校餐厅缴费系统 帮朋友基于SpringBoot鲜花商城系统,订制...
【Spring从成神到升仙系列... 👏作者简介:大家好,我是爱敲代码的小黄,独...
人生励志签名100句,qq人生... 1、知识愈浅,自信愈深。——苏联   2、勇敢乃是自信与害怕中间之道。——(希腊)亚里士多德  3、...
安全生产标语二十条,安全生产标... 1、关爱生命 安全发展 2、安全第一 预防为主 综合治理3、广泛深入开展“安全生产月...
关于青春的励志签名,创业励志签... 1、世上最重要的事,不在于我们在何处,而在于我们朝着什么方向走。   2、世上没有绝望的处境,只有对...
拼搏的励志签名,最新或2023... 1、如果你认为学校里的老师过于严厉,那么等你有了老板再回头想一想。   2、世界青睐有雄心壮志的人。...
春运安全标语,春运安全注意事项... 1、文明交通你我他,平安出行迎新春。 2、春运安全连万家,出行平安你我他。3、驾车莫贪杯中酒,平安幸...
访问网络服务-Go对IPC的支... 访问网络服务-Go对IPC的支持 文章目录访问网络服务-Go对IPC的支持一、socket与IPC1...
自己主持婚礼主持词精选 婚礼开...  自己主持婚礼主持词精选(一)  1、新人入场  新人踏着舞步走到一半,庄重登常  新郎:繁花似锦,...
浪婚礼主持词串词顺口溜 濠氬簡... 今天####年#月#日,天空因为今天的喜庆而变得格外晴朗,而大地也因为年青人的无限活力而充满了生机。...
最新或2023(历届)新年跨年... 最新或2023(历届)新年说说祝福大全一:过年要玩好,必须的;早餐别忘了,注意的;烟酒要减少,提醒的...
搞笑婚礼主持词精选 搞笑婚礼主... 开场音乐中 司仪登场 (秋天)  嘘,,,,多安静啊,一点掌声都没有,感谢大家无声的支持。  凉风有...
最新或2023(历届)鼠年qq...  最新或2023(历届)qq空间新年说说大全  一、 新年到来,百无禁忌。东行吉祥,南走顺利,西出平...
大模型落地比趋势更重要,NLP... 全球很多人都开始相信,以ChatGPT为代表的大模型,将带来一场NLP领...
Android开发-Andro... 01  Android UI 1.1  UI 用户界面(User Interface,...