Pinia的使用方式!!!

1.安装Pinia:

复制代码
npm install pinia

2.在Main.js文件中导入:

javascript 复制代码
import { createPinia } from "pinia";

app.use(createPinia());

3.首先我们先创建一个单独的包供Pinia使用。(单独创建包,可以为后期的维护奠定基础!!)

创建一个cart.js文件:

javascript 复制代码
import { defineStore } from "pinia";

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const useCartStore = defineStore("cart", {
  // state配置:用来管理公共响应式数据
  state: () => {
    return {
      //响应式数据定义到这里
      count: 0,
    };
  },
  // actions配置: 用来操作公共相应式数据
  actions: {
    add() {
      this.count++;
    },
  },
  // getters: 用来配置公共相应式数据的计算,可以重复使用
  getters: {
    doubleCount: (state) => state.count * 2,
  },
});

4.如何使用Pinia呢???

创建一个CartView.vue:(首先先导入上边创建的js文件,直接const声明变量来接收Pinia对象即可,调用的时候直接打点调属性即可)

html 复制代码
<script>
import { ref, computed } from "vue";
// 导入的时候@符号代表src目录
import { useCartStore } from "@/store/cart";
export default {
  // setup() 是页面的入口,每个.vue文件都有一个setup(){}入口函数,加载页面首先从这里开始。一般在这里做一些初始化的操作。比如:页面数据、初始化请求。vue会在合适的执行时机,来调用这个函数。
  setup() {
    const cartStore = useCartStore();
    console.log("++++", cartStore.count);

    return {
      cartStore,
    };
  },
};
</script>
<template>
  <main>
    <p @click="() => cartStore.add()">
      store的相应式数据:{{ cartStore.count }}:{{ cartStore.doubleCount }}
    </p>
  </main>
</template>
相关推荐
烛阴2 分钟前
为什么 `Promise.then` 总比 `setTimeout(..., 0)` 快?微任务的秘密
前端·javascript·typescript
XiaoSong6 分钟前
基于 React Native/Expo 项目的持续集成(CI)最佳实践配置指南
前端·react native·react.js
white-persist12 分钟前
汇编代码详细解释:汇编语言如何转化为对应的C语言,怎么转化为对应的C代码?
java·c语言·前端·网络·汇编·安全·网络安全
张愚歌19 分钟前
轻松打造个性化Leaflet地图标记
前端·javascript
华仔啊21 分钟前
CSS实现高级流光按钮动画,这几行代码堪称神来之笔
前端·css
用户37779672109623 分钟前
新值依赖旧值?并发更新的“坑”
javascript
歪歪10029 分钟前
详细介绍一下“集中同步+分布式入库”方案的具体实现步骤
开发语言·前端·分布式·后端·信息可视化
林太白39 分钟前
rust17-部门管理模块
前端·后端·rust
_处女座程序员的日常40 分钟前
如何预览常见格式word、excel、ppt、图片等格式的文档
前端·javascript·word·excel·开源软件
明月与玄武43 分钟前
前端文件上传终极指南:从原理到架构实践!
前端·前端文件上传终极指南