pinia使用多个store
多个store使用 目录 src assets components store user_store.js site_store.js
pinia使用多个store
发布时间:2023-10-12 (2023-10-12)

多个store使用

目录

src
    assets
    components
    store
        user_store.js
        site_store.js
    App.vue
    main.js

user_store.js

import {defineStore} from 'pinia'

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const useStore = defineStore('user', {
    // 推荐使用 完整类型推断的箭头函数
    state: () => {
        return {
            userName: "枫枫",
        };
    }
})

site_store.js

import {defineStore} from 'pinia'

export const siteStore = defineStore('site', {
    state: () => {
        return {
            siteName: "fengfengzhidao",
        };
    }
})

App.vue

<template>
  <div>
    <div>
      userStore: {{ userName }}
    </div>
    <div>
      siteStore: {{ siteName }}
    </div>
  </div>
</template>

<script setup>
import {useStore} from "./store/user_store.js";
import {siteStore} from "./store/site_store.js";
import {storeToRefs} from "pinia"

const user_store = useStore()
const {userName} = storeToRefs(user_store)

const site_store = siteStore()
const {siteName} = storeToRefs(site_store)

</script>

store中使用另一个store

例如在user_store中使用site_store的数据

import {defineStore} from 'pinia'
import {siteStore} from "./site_store.js";

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const useStore = defineStore('user', {
    // 推荐使用 完整类型推断的箭头函数
    state: () => {
        return {
            userName: "枫枫",
        };
    },
    getters:{
        userSite(state){
            const site_store = siteStore()
            return state.userName + "_" + site_store.siteName
        }
    }
})