Pinia学习笔记之--核心概念Actions

Pinia 中的 actions 用于组件中的方法,处理业务逻辑,支持异步操作。例如,定义一个 counter store,包含 increment 和 randomizeCounter 方法。actions 可以访问整个 store 实例,通过 this 访问状态,并能 await 异步调用。如示例所示,actions 可以在组件内直接调用,也可以订阅其执行情况以便跟踪和处理错误。此外,可以使用 mapActions 辅助函数在 Options API 中映射 actions 到组件方法。

Actions

Actions相当于组件中的方法。他们可以被定义在defineStore()actions属性下,它们非常适合定义业务逻辑。

export const useStore = defineStore('main', {
   
   
  state: () => ({
   
   
    counter: 0,
  }),
  actions: {
   
   
    increment() {
   
   
      this.counter++
    },
    randomizeCounter() {
   
   
      this.counter = Math.round(100 * Math.random())
    },
  },
})

getter一样,actions通过this(和自动完成✨)支持来访问整个store实例。与它们不同的是,actions可以是异步的,您可以在其中await任何API调用或甚至其他操作!下面是一个使用Mande的例子。注意,你只需要得到一个Promise,至于使用的库并不重要,你甚至可以使用原生的fetch函数(仅适用于浏览器):

import {
   
    mande } from 'mande'

const api = mande('/api/users')

export const useUsers = defineStore('users', {
   
   
    state: () => ({
   
   
        userDate: null
    }),
    actions: {
   
   
        async registerUser(login, password) {
   
   
            try {
   
   
                this.userDate = await api.post({
   
    login, password}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝对零度HCL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值