Skip to content
页面目录

Store

使用 Pinia 进行状态管理,进行模块化封装并搭配持久化插件

新建Store

可以使用 npm arun gen 选择 store 直接生成一个状态模块
也可以根据下面的示例自行创建

  • store模块放置在 /src/store/modules 中
  • index.ts 导出store
  • types.ts 定义state类型
ts
// index.ts
// 创建 pinia 并导处
import { defineStore } from 'pinia';
import pinia from '@/store';
import { AppState } from './types';

export const useHomeStoreHook = defineStore(
   'Home',
   {
      state: () => ({
         title: 'SV3-Template',
         subTitle: 'Vue3快速开发模板',
         subTitle1: '简洁易懂,文档详细,含脚手架搭建教程',
      }),
      getters: {},
      actions: {
         updateInfo(partial: Partial<AppState>) {
            this.$patch(partial);
         },
      },
   }
);

export function useHomeStore() {
   return useHomeStoreHook(pinia);
}
ts
// types.ts
// 定义路由类型
export interface AppState {
   title: string;
   subTitle: string;
   theme: string;
}

Stroe使用

引入stroe模块中的hook即可调用 更多使用方式请查阅Pinia官方文档

ts
import { useHomeStoreHook } from '@/store/modules/home';
const store = useHomeStoreHook();

const homeInfo = {
    title: store.title,
    subTitle: store.subTitle,
    subTitle1: store.subTitle1,
};

Store根目录

  • 项目在 /src/store 创建pinia并引用持久化插件
ts
import { createPinia } from 'pinia';
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
export default pinia;

Released under the MIT License