Pinia store如何做模块化

1、没安装pinia的先安装
npm i pinia
或 yarn add pinia
2、在src下创建store文件夹
(1)、创建store根文件 index.ts

作用:所有store只需实例一个pinia,导出给main.ts使用。同时统一导出整个modules下的所有store

// store/index.ts
import { createPinia } from "pinia";

// 实例化pinia
export const pinia = createPinia();

// 统一导出整个modules下的所有store
export * from "./modules";

(2)、在store下创建modules文件夹

创建modules根文件 index.ts
作用:统一导出所有子store

// 导出每个store它的一切逻辑
export * from "./shoppingCart"; // 购物车
export * from "./user"; // 用户信息
(3)、子store都这样导出

export const XXX

// store/modules/user.ts
import { defineStore } from "pinia";

export const useUserStore = defineStore("User", {
  state: () => ({
  	loginForm: {},
  }),
  getters: {},
  actions: {},
});
// store/modules/shoppingCart.ts
import { defineStore } from "pinia";

export const useCartStore= defineStore("ShopCart", {
  state: () => ({}),
  getters: {},
  actions: {},
});
3、main.ts 配置pinia
import { pinia } from "./store";
// import { pinia } from "@/store"; // 如果你配置了路径别名则用@

createApp(App)
  .use(pinia)
  .mount("#app");

至此模块化做好了

4、页面如何使用store中的数据或方法

以home.vue为例,如果数据要将做响应式请看 一、基本使用,里面有写

<script setup ts>
 import { useUserStore } from "/store";  // 1、引入
 const useUser = useUserStore(); // 2、实例store 
 const handleClick = () => {    // 3、使用
	console.log(useUser.loginForm) // 变量 
	useUser.login(); //  方法
 }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值