1. yarn add pinia

    如果项目比较大,使用单一状态库,项目的状态库就会集中到一个大对象上,显得十分臃肿难以维护。所以Vuex就允许我们将其分割成模块(modules),每个模块都拥有自己state,mutations,actions…。
    Pinia没有modules,如果想使用多个store,直接定义多个store传入不同的id即可,如:

    1. import { defineStore } from "pinia";
    2. export const storeA = defineStore("storeA", {...});
    3. export const storeB = defineStore("storeB", {...});
    4. export const storeC = defineStore("storeB", {...});

    在 src/store 目录下新建 index.ts 文件与 modules 文件夹

    1. └── src/
    2. ├── store/
    3. ├── modules/
    4. ├── index.js
    1. import type { App } from 'vue'
    2. import { createPinia } from 'pinia'
    3. const store = createPinia()
    4. export default function setupStore(app: App<Element>) {
    5. app.use(store)
    6. }

    mian.ts挂载 store 配置 :

    1. import { createApp } from 'vue'
    2. import setupRoute from './router'
    3. import setupStore from './store'
    4. import App from './App.vue'
    5. // ...
    6. const app = createApp(App)
    7. // 路由配置
    8. setupRoute(app)
    9. // 配置 store
    10. setupStore(app)
    11. app.mount('#app')