【vue3】pinia配置(任意组件通信,集中状态管理容器)

选择式写法

一、安装pinia依赖

终端输入:npm install pinia

二、配置pinia

第一步:创建仓库,在src目录下创建文件夹modules和文件index.ts.
第二步:配置index.ts

javascript 复制代码
// 创建pinia大仓库
import { createPinia } from "pinia";
let store = createPinia();
export default store;

第三步:在main.ts引入

第四步(案例):配置小仓库info

javascript 复制代码
import { defineStore } from "pinia";
// defineStore("仓库名","仓库的基础配置")
let useInfoStore = defineStore("info", {
  // 存储数据
  state: () => {
    return {
      name: "zs",
      age: 1,
    };
  },
  actions: {
    changeAge() {
      this.age++;
    },
  },
  getters: {
    c() {
      let s: string = this.name + this.age;
      return s;
    },
  },
});
export default useInfoStore;

第五步:组件调用小参考数据

组合式写法

javascript 复制代码
import { defineStore } from "pinia";
import { ref, computed } from "vue";

let useToolStore = defineStore("tool", () => {
  let tool = ref([
    { name: "lisi", age: 12 },
    { name: "wangwu", age: 14 },
  ]);
  let arr = ref([1,2,3]);
  const c = computed(() => {
    return arr.value.reduce((pre: any, next: any) => {
      return pre + next;
    },0);
  });
  return {
    tool,
    arr,
    updateAge() {
      tool.value.push({ name: "xx", age: 66 });
    },
    c,
  };
});
export default useToolStore;
相关推荐
开开心心就好1 分钟前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
PedroQue992 小时前
0.8.2 新增 backFallback 配置,无 tabbar 页返回无忧
前端·uni-app
淡漠的蓝精灵2 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
开开心心就好3 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
起个名字费劲死了3 小时前
Halcon学习一:骰子识别
前端·python·学习
大江东去浪淘尽千古风流人物3 小时前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
其实防守也摸鱼3 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
web打印社区3 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket
李剑一3 小时前
为什么几乎所有的知名开源项目都是外国人写的?
前端·ai编程·deepseek
小郎君6583 小时前
(一)为什么表单需要第三种状态:disabled、readonly 与纯文本展示
前端·vue.js