【Pinia】Store实例的属性和方法

Store实例的属性和方法

Store实例的属性

$id

  • $id: Id

sotre 的唯一标识符
通过调用store.$id获取

$state

  • $state: UnwrapRef<S>&PiniaCustomStateProperties<S>

store的状态,设置好的state需要在内部调用$patch()方法才能更新
通过调用store.$state获取当前定义的state

_customProperties

  • _customProperties: Set<string>

由 devtools 插件用来检索使用插件添加的属性。 在生产中被删除。 用户可以使用它来添加应在 devtools 中显示的 Store 的属性。

Store实例的方法

$dispose

  • $dispose: void

摧毁 store 实例

$onAction

  • $onAction(callback, detached?): () => void

设置每次要调用操作时调用的回调。 回调接收一个包含所调用操作的所有相关信息的对象:

  • store:调用它的 store
  • name:动作的名称
  • args:传递给动作的参数

除此之外,它还接收两个函数,允许在操作完成或失败时设置回调。

它还返回一个函数来删除回调。 请注意,在组件内部调用 store.$onAction() 时,除非将 detached 设置为 true,否则组件卸载时它将自动清理。

store.$onAction(({ after, onError }) => {
 // 在这里,您可以在所有挂钩之间共享变量以及设置观察者并清理它们
 after((resolvedValue) => {
   // 可用于清除副作用 `resolvedValue` 是操作返回的值,如果它是 Promise,则它将是解析值而不是 Promise
 })
 onError((error) => {
   // 可以用来传递错误
 })
})

$patch

  • $patch(partialState): void

用于更新State的值,允许传递嵌套数据

this.$patch({ name: '更新name' })
  • $patch<F>(stateMutator): void

当要对数组或对象进行操作时候,不必新建一个对象就可以更新,但是必须是同步

this.$patch(() => {
    this.nameList.push('加入nameList的数据')
})

$reset

  • $reset(): void

通过构建新的状态对象将存储重置为其初始状态。

$subscribe

  • $subscribe(callback, options?): () => void

设置每当状态改变时调用的回调。 它还返回一个函数来删除回调。 请注意,在组件内部调用 store.$subscribe() 时,除非将 detached 设置为 true,否则组件卸载时它将自动清理。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秋丶海

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

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

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

打赏作者

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

抵扣说明:

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

余额充值