Pinia的Store运行时定义ID

简介: Pinia的Store运行时定义ID

Pinia的Store的ID是全局唯一的标识符,但是在实际应用当中,我可能需要复用这一个State,举一个例子:我们现在有一个用户详情页,它下面有多个Tab页,那么我就定一个Store去在组件之间去共享数据,如果只能够开一个用户的详情页,那也就罢了,但是,假如我现在需要多开用户详情页,那么就不好玩了,在这个时候,我需要id可变,就像这样的:user-detail-{userId}.


import { defineStore } from'pinia';
interfaceCounterState {
counter: number;
}
exportconstuseCounterStore=function(id: string) {
returndefineStore(id, {
state: (): CounterState=> ({
counter: 0,
    }),
getters: {
getCounter(): number {
returnthis.counter;
      }
    },
actions: {
increment() {
this.counter++      },
randomizeCounter(){
this.counter=Math.round(100*Math.random())
      },
    },
  })();
}


使用:

import { useCounterStore } from'@/stores/test';
conststore=useCounterStore("main-1")
console.log('before', store.getCounter);
store.randomizeCounter();
console.log('after', store.getCounter);
目录
相关文章
|
7月前
|
JavaScript
vue实例的data属性,可以在哪些生命周期中获取到
Vue实例的`data`属性在`beforeCreate`、`created`和`beforeMount`阶段已可访问。此时,虽能使用数据,但事件监听和DOM操作不可行。`beforeCreate`时数据可访问,但未初始化观测和事件;`created`时数据完全可用,但未挂载到DOM;`beforeMount`时仍可访问数据,DOM挂载未开始。
161 3
|
JavaScript
Vue Antdv 列表(table、list)自定义空数据状态UI
Vue Antdv 列表(table、list)自定义空数据状态UI
696 0
|
2月前
|
存储 JavaScript
vue——store全局存储
【10月更文挑战第18天】Vuex 是 Vue.js 应用中非常重要的一个工具,它为我们提供了一种有效的状态管理方式。通过合理地使用 Vuex,我们可以更好地组织和管理应用的状态,提高应用的开发效率和质量。
69 1
|
4月前
|
JavaScript IDE 开发工具
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
这篇文章介绍了在Vue 3 + TypeScript + Vite开发环境中解决找不到`.vue`文件模块或其类型声明错误的两种方法:使用VSCode的TypeScript Vue Plugin (Volar)插件或手动在`env.d.ts`文件中声明`*.vue`模块类型。
715 0
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
|
5月前
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
2099 1
|
6月前
|
JavaScript API
【Vue3的组合式API】超详细教程,含computed、watch、组件通信、模版引用......
【Vue3的组合式API】超详细教程,含computed、watch、组件通信、模版引用......
|
7月前
|
JavaScript 安全 API
vue3注册添加全局实例属性的方法,如何在setup函数中调用
vue3注册添加全局实例属性的方法,如何在setup函数中调用
781 2
|
缓存 JavaScript
vue的计算属性和watch的区别
vue的计算属性和watch的区别
90 0
|
7月前
|
JavaScript
store下的getter.js什么作用
store下的getter.js什么作用