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 }
})
相关推荐
特立独行的猫a11 天前
鸿蒙应用状态管理新方案:AppStorageV2与PersistenceV2深度详解
华为·harmonyos·状态管理·appstoragev2·persistencev2
Sheldon一蓑烟雨任平生11 天前
Vue3 任务管理器(Pinia 练习)
vue.js·vue3·pinia·任务管理器·pinia 练习
似水流年QC13 天前
深入 Pinia 工作原理:响应式核心、持久化机制与缓存策略
缓存·pinia·持久化·缓存策略
养乐多同学9435414 天前
关于vuex的缓存持久实践
前端·vuex
returnfalse1 个月前
🕹️ 让你的Vue项目也能支持虚拟摇杆!一个Canvas虚拟摇杆组件让你的游戏体验飙升
前端·vuex
Light602 个月前
领码课堂 | React 核心组件与高级性能优化全实战指南
性能调优·状态管理·微前端·server·components·react 架构
Beginner x_u2 个月前
Vue 3 项目实战教程大事件管理系统 (一):从零开始搭建项目基础
前端·javascript·vue.js·pinia
顾辰逸you2 个月前
mixins实现逻辑复用
前端·vue.js·vuex
安_An3 个月前
Vuex+TypeScript实现hook,以及类型增强Store
typescript·vuex
胡西风_foxww3 个月前
Jotai:React轻量级状态管理新选择
前端·react.js·前端框架·状态管理·jotai