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 }
})
相关推荐
天若有情67316 天前
Vuex 的核心作用深度解析:构建高效可维护的 Vue 应用状态管理体系
前端·javascript·vue.js·vuex
特立独行的猫a20 天前
Kuikly多端框架(KMP)实战:现代Android/KMP状态管理指南:基于StateFlow与UDF架构的实践
android·架构·harmonyos·状态管理·kmp·stateflow·kuikly
全栈探索者25 天前
useState 换个名字叫 @State,仅此而已
react·harmonyos·arkts·前端开发·deveco studio·状态管理·鸿蒙next
全栈探索者25 天前
useContext 退场,@Provide + @Consume 登场
react.js·harmonyos·arkts·状态管理·前端转型
小书包酱1 个月前
在 VS Code中,vue2-vuex 使用终于有体验感增强的插件了。
vue.js·vuex
夏河始溢1 个月前
一八四、Zustand 状态管理详解、与 Redux、MobX 的对比分析
前端·javascript·react.js·状态管理·zustand
Irene19911 个月前
在计算属性中获取 Vuex 状态是标准做法(附:Vue 3 计算属性详解及和 watch 对比)
vue.js·vuex·watch·计算属性
Irene19911 个月前
全局状态管理:Vuex 与 Pinia 对比(附:反模式详解)
pinia·vuex·状态管理·反模式
二哈喇子!1 个月前
Pinia 状态管理库
pinia
Irene19911 个月前
Pinia 使用详解(附:如何查看或区分项目使用的是 Pinia 还是 Vuex 4)
pinia·vuex