vue2.0中ts中vuex模块化如何使用

server/2024/9/24 17:17:22/

vue2.0中ts中vuex模块化如何使用

  • 一、store中如何配置
    • 1.index.ts
    • 2.user.ts
  • 二、如何使用vuex

一、store中如何配置

1.index.ts

javascript">import Vue from 'vue';
import Vuex from 'vuex';
import { UserStateType } from './modules/user'; //导入 UserStateType 类型
Vue.use(Vuex);export interface IRootState {user: UserStateType;
}//创建并导出一个新的 Vuex Store 实例,该实例接受一个泛型参数 IRootState
export default new Vuex.Store<IRootState>({});

2.user.ts

javascript">
import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators';
import store from '@/store';// 定义了一个接口 UserStateType,包含了用户状态的属性和类型信息
export interface UserStateType {token: string;rootGroupId: number;
}// dynamic: true:指定模块为动态加载。
// namespaced指定模块的命名空间为 true。启用命名空间后,模块的 actions、mutations 和 getters 将自动命名空间处理。
@Module({ dynamic: true, store, namespaced: true, name: 'user' })// class User:定义了一个名为 User 的类。
// extends VuexModule:让 User 类继承自 Vuex 模块的基类 VuexModule,这是 Vuex 模块的基本要求。
// implements UserStateType:表明该类实现了 UserStateType 接口,即遵循了 UserStateType 接口所定义的属性和类型。
class user extends VuexModule implements UserStateType {// tokenpublic token = '';public rootGroupId = 0; // 根节点id//存入token@Mutationpublic SET_TOKEN(token: string) {this.token = token;}//对外暴露存入token@Actionpublic setToken(token: string) {this.SET_TOKEN(token);}//   获取用户的token@Actionpublic getToken() {return this.token;}get getRootGroupId() {return this.rootGroupId;}// 根节点id@MutationSET_ROOT_GROUP_ID(params: number): void {this.rootGroupId = params;}@ActionsetRootGroupId(params: number): void {this.context.commit('SET_ROOT_GROUP_ID', params);}
}// 导出 UserModule 的模块实例
export const UserModule = getModule(user);

二、如何使用vuex

javascript">import { UserModule } from '../store/modules/user';// 用于设置UserModule 模块中的 rootGroupId 属性值。
UserModule.setRootGroupId(8);// 用于获取 UserModule 模块中的 rootGroupId 属性值。
get sidebar() {return UserModule.rootGroupId;
}

http://www.ppmy.cn/server/111055.html

相关文章

Vue.js 样式绑定

Vue.js 样式绑定 Vue.js 是一种流行的前端框架&#xff0c;它提供了一种简洁而强大的方式来绑定样式到元素上。样式绑定允许开发者根据组件的状态动态地改变元素的样式。在 Vue 中&#xff0c;样式绑定可以通过多种方式实现&#xff0c;包括类绑定、内联样式绑定和计算属性样式…

新手如何学单片机

新手学习单片机可以按照以下步骤进行&#xff1a; 一、基础知识准备 学习电子基础知识&#xff1a;了解电压、电流、电阻等基本概念&#xff0c;以及它们在电路中的作用。学习计算机体系结构&#xff1a;理解计算机的基本组成和工作原理&#xff0c;包括CPU、内存、输入输出设…

【C语言】结构体新的理解

【C语言】结构体新的理解 一、引言1 介绍2 分析 二、怎么定义结构体&#xff1f;1 直接定义结构体变量2 定义一个结构体“类型”3 定义结构体“类型”&#xff0c;且typedef指定别名 三、typedef的用法1 最基本的用法2 与define的区别2.1 原理不同2.2 功能不同2.3 作用域不同2.…

Cesium加载高速公路样式线图层和利用CSS撰写高速公路样式

在ArcGIS软件中是将多个线图层叠加&#xff08;宽的叠加在下方防止遮盖其他图层&#xff09; 依照此想法在Cesium中加载高速公路线图层时 在 Cesium 中&#xff0c;直接设置线&#xff08;如 Polyline&#xff09;的样式为“高速公路样式”并不直接支持&#xff0c;因为 Cesiu…

会赢的!(牛客)

题目描述 在一个无限大的二维网格内&#xff0c;阿龙和小歪正在玩一场游戏。我们使用 (i,j)(i,j)(i,j) 表示网格中从上往下数第 iii 行和从左往右数第 jjj 列的单元格。规则如下&#xff1a; 两人共同操作一个棋子&#xff0c;开始位置为 (0,0)(0,0)(0,0) &#xff1b; 每个回…

Android音视频开发,需要学些什么?

如果你想学习 Android 音视频开发&#xff0c;以下是一些需要学习的内容&#xff1a; 一、基础知识 Java 或 Kotlin 编程语言&#xff1a;Android 开发主要使用这两种语言&#xff0c;确保你对其中一种有扎实的掌握&#xff0c;包括语法、面向对象编程概念、数据结构和算法等…

k8s-pod 实战八 (gRPC 探测详细分析)

gRPC 探测详细分析 在 Kubernetes 中,探针(Probe)用于检查应用程序的健康状态和就绪状态。尽管 Kubernetes 原生支持 HTTP 和 TCP 探针,但对于 gRPC 服务,你需要借助第三方工具来实现探测。grpc-health-probe 是一个常用的工具,它专门用于探测 gRPC 服务的健康状态。 实…

django外键表查询

Django外键&#xff08;ForeignKey&#xff09;操作以及related_name的作用-CSDN博客 django模型中外键操作_django的model的contain外键-CSDN博客 通过基本表可以查外键表 删基本表可以删外键表