【发布时间】:2022-01-17 09:56:11
【问题描述】:
通常我使用命名空间的 vuex。但是我决定退出 vuex 因为 Pinia 有 vue 核心团队的支持。我认为这对未来的发展更好。现在我正在使用模块化方法创建商店,但无法真正理解如何在 typescript 项目中处理该部分。
假设我有一个user 接口。
interface User {
email: string,
username: string,
}
export default User;
在store/modules/state.ts 中,我正在调用类型并创建用户状态。
import User from "../../types/User"
export const state = () => {
return {
user: {} as User | null,
};
}
在store/modules/index.ts 我应该导入状态。并制作 namespace: true 然后将其导出到 pinia 商店的 defineStore() 中。
import {state} from "./state"
export default {
namespace: true,
state,
}
在store/index.ts
import {defineStore} from "pinia"
import {data} from "./modules"
export const Store = defineStore(data)
上面好了,命名空间部分我用的是vuex的方式。但是松果的正确方法是什么。此外,吸气剂和动作也是如此。应该如何导出和使用它们。
【问题讨论】: