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);
目录
相关文章
|
22天前
|
JavaScript
vue实例的data属性,可以在哪些生命周期中获取到
Vue实例的`data`属性在`beforeCreate`、`created`和`beforeMount`阶段已可访问。此时,虽能使用数据,但事件监听和DOM操作不可行。`beforeCreate`时数据可访问,但未初始化观测和事件;`created`时数据完全可用,但未挂载到DOM;`beforeMount`时仍可访问数据,DOM挂载未开始。
29 3
|
8月前
|
JavaScript
Vue Antdv 列表(table、list)自定义空数据状态UI
Vue Antdv 列表(table、list)自定义空数据状态UI
354 0
|
1月前
|
JSON JavaScript 算法
Vue之v-for(包含key内部原理讲解)
Vue之v-for(包含key内部原理讲解)
|
3月前
|
JavaScript
状态管理之Vuex (三) store利用module拆分
状态管理之Vuex (三) store利用module拆分
20 0
|
6月前
|
编译器
Spartacus 4.3.x 版本导入 Cart 到 App Module 构造函数的错误消息
Spartacus 4.3.x 版本导入 Cart 到 App Module 构造函数的错误消息
50 1
|
8月前
|
移动开发 小程序
关于uni-app页面Page和组件Component生命周期执行的先后顺序
关于uni-app页面Page和组件Component生命周期执行的先后顺序
100 0
|
8月前
|
Java 数据库 OceanBase
,Store组件的JVM参数
,Store组件的JVM参数
140 1
|
8月前
|
前端开发
【React工作记录八十六】React+Hook+ts+antDesignMobile实现input自动获取功能
【React工作记录八十六】React+Hook+ts+antDesignMobile实现input自动获取功能
52 0
|
9月前
|
机器学习/深度学习 前端开发 JavaScript
React 内部数据 state v.s. 外部数据 props
React 内部数据 state v.s. 外部数据 props
60 0