类型化的 Store 模块
类型化的 Store 模块是 Pinia 学习中的单个核心知识点,下面直接说明用法。
定义
类型化的 Store 模块是 Pinia 使用中的一个独立知识点,核心作用是:将Store定义与类型定义分离到不同文件,掌握类型导入导出最佳实践。
语法
类型语法重点是给 state、action 参数和返回值提供明确约束。
TypeScript
interface UserState {
id: number
name: string
roles: string[]
}
export const useUserStore = defineStore('user', {
state: (): UserState => ({ id: 0, name: '', roles: [] }),
actions: { setName(name: string) { this.name = name } }
})
示例
TypeScript
interface UserState {
id: number
name: string
roles: string[]
}
export const useUserStore = defineStore('user', {
state: (): UserState => ({ id: 0, name: '', roles: [] }),
actions: { setName(name: string) { this.name = name } }
})
注意事项
复杂状态不要依赖隐式 any,优先声明接口或类型别名。
要点总结
类型化的 Store 模块只解决当前知识点对应的问题。- 优先使用 Pinia 官方 API,避免引入多余封装。
- 示例代码应保持 Store 简洁、职责清晰。
📝 发现内容有误?点击此处直接编辑