vue3中如何使用Pinia

Pinia是一个基于Vue的状态管理库,它允许你跨组件或页面共享状态。它是为了解决Vuex在大型应用中出现的一些问题而开发的。

 Pinia有三个👉 stateactions 与 getters 属性的 Option 对象

 你可以认为 state 是 store 的数据 (data),getters 是 store 的计算属性 (computed),   而 actions 则是方法 (methods)。

1.安装pinia:运行命令 npm install pinia 来安装pinia。

npm install pinia

2.创建pinia实例:

(1).在main.js入口文件中添加圈出来的语句

 (2).在src中新建文件夹pinia,在pinia文件夹下新建index.js 在index.js中添加以下语句

import { createPinia } from 'pinia'
const pinia = createPinia()
export default pinia

(3). 在pinia文件夹下新建modules文件夹, 在这个文件夹下创建public.js文件 ,public.js中输入以下内容

import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
  state: () => ({
    count:0
  }),
  getters:{
    double:(state) =>state.count *2
  },
  actions: {
    increment() {
      this.count++
    }
  }
})

 (4).如何在组件中使用Pinia

import {useCounterStore} froom '@/pinia/modules/public'

①state: 调用count

const counter = ref(useCounterStore().count);

<div>Current Count: {{ counter }}</div>

②actions:点击按钮调用increment()方法

function clickBtnHandle() {
  useCounterStore().increment();
}

<button @click="clickBtnHandle">点击+1</button>

因为点击按钮的时候并不会改变counter的值,所以我们需要watch监听useCounterStore().count的值,并重新给counter 赋值

import { watch, ref } from 'vue'

watch(
  () => useCounterStore().count,
  (value) => {
    counter.value = value
  }
)

③getters

  <div>{{ useCounterStore().double }}</div>

 完整代码:

以上示例演示了如何使用pinia的核心功能。更多详细的用法和属性请参阅pinia官方文档。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值