通常我使用的是命名空间的 vuex。但我决定退出vuex,因为Pinia有 vue 核心团队的支持。我认为这对未来的发展更好。现在我正在使用模块化方法创建商店,但无法真正理解如何在 typescript 项目中处理该部分。
假设我有一个user
界面。
interface User {
email: string,
username: string,
}
export default User;
在store/modules/state.ts
我调用 Type 并创建用户状态。
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的方式。但是,松果的正确方法是什么。此外,吸气剂和动作也是如此。应该如何导出和使用它们。