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

选择式写法

一、安装pinia依赖

终端输入:npm install pinia
在这里插入图片描述

二、配置pinia

第一步:创建仓库,在src目录下创建文件夹modules和文件index.ts.
在这里插入图片描述第二步:配置index.ts

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

第三步:在main.ts引入

在这里插入图片描述第四步(案例):配置小仓库info

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;

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

在这里插入图片描述

组合式写法

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;
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Vue 3的Pinia状态管理库可以很方便地存储和传输数据。以下是一个示例: 首先,安装Pinia库: ``` npm install pinia ``` 然后,在你的Vue 3项目中创建一个store实例,例如: ```javascript // store.js import { createPinia } from 'pinia'; const store = createPinia(); export default store; ``` 接下来,在需要使用状态管理的组件中引入store并创建一个Pinia store实例,例如: ```javascript // MyComponent.vue <template> <div> <p>{{ dataValue }}</p> <button @click="setDataValue">Update Value</button> </div> </template> <script> import { defineComponent } from 'vue'; import { useStore } from 'pinia'; export default defineComponent({ name: 'MyComponent', setup() { const store = useStore(); const dataValue = store.dataValue; const setDataValue = () => { store.dataValue = 'New Value'; }; return { dataValue, setDataValue, }; }, }); </script> ``` 在上面的示例中,我们通过`useStore`函数从store实例中获取了`dataValue`属性,并在模板中展示了它。我们还定义了一个`setDataValue`方法,当按钮被点击时,将新值赋给`dataValue`属性。 最后,在你的应用程序的入口文件中,使用`app.use(store)`来注册store: ```javascript // main.js import { createApp } from 'vue'; import store from './store'; import App from './App.vue'; const app = createApp(App); app.use(store); app.mount('#app'); ``` 现在,当你在`MyComponent.vue`组件中点击按钮时,`dataValue`的值将会更新,并且在其他使用了`dataValue`的组件中也会得到更新。这样就完成了使用Pinia进行状态管理的数据传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值