Vue3学习-Pinia 集中式状态管理工具

安装 Pinia

js 复制代码
npm i pinia

Pinia 集中式状态管理工具官网 传送门

引入 Pinia

js 复制代码
//引入
import { createPinia } from 'pinia'
const pinia = createPinia()
const app = createApp(App);
app.use(pinia);

使用

js 复制代码
// store 注册
import { defineStore } from "pinia";
export const useAStore = defineStore('a',{
    state(){
        return { a:1 }
    },
    getters: {
	   doubleCount: (state) => state.a * 2,
	},
	actions: {
	    increment(val) {
	      this.a = val
	    },
	},
})
// 组件获取
import { useAStore,storeToRefs } from '@/store/a'
const aStore = useAStore()
// 监听aStore 变化
aStore.$subscribe((mutate,state) => {
	console.log(mutate); // 行为
	console.log(state); // 改变后数据
});
let { a } = storeToRefs(aStore ) //store响应式数据,用于修改实时改变的值
console.log(aStore)
//修改
aStore.a += 1; // 单个
aStore.$patch({ // 批量
	a:2
});
aStore.increment(3)
// 获取getter
aStore.doubleCount()

组合式使用

js 复制代码
import { reactive, ref } from "vue";
import { defineStore } from "pinia";
export const useAStore = defineStore('a',{
    let a = ref('1')
    async function addAFun(){
    	a++
    }
    return { a,addAFun }
})
相关推荐
USER_A00110 天前
【VUE3】练习项目——大事件后台管理
前端·vue.js·axios·pinia·elementplus·husky·vuerouter4
阿娟蛋14 天前
Pinia vs Vuex深度探索:状态管理的进阶之道
前端·源码·vuex
奶球不是球16 天前
vue3中pinia基本使用
vue.js·pinia
介si啥呀~18 天前
Vuex 的使用场景和使用方法
前端·javascript·vue.js·vuex
李恩泽的博客18 天前
快速入门 vue持久化之vuex!!!
vuex
dr李四维1 个月前
uniapp从 vue2 项目迁移到 vue3流程
javascript·vue.js·uni-app·vue3·vue2·vuex·vue迁移
肉肉不吃 肉1 个月前
父子组件传递数据和状态管理数据
前端·javascript·vue.js·pinia
霸王蟹1 个月前
Pinia-构建用户仓库和持久化插件
前端·vue.js·笔记·ts·pinia·js
CrazyMo_1 个月前
OpenHarmony 入门——ArkUI 跨页面数据同步和页面级UI状态存储LocalStorage小结(二)
harmonyos·装饰器·openharmony·状态管理·arkui
程序员爱钓鱼1 个月前
从零到精通:用go+vue语言打造高效多语言博客系统的完整指南
后端·go·vuex