回首Vue3之状态管理篇(九)

125 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

这篇文章我们讲一下Store的实例方法:subscribesubscribeAction

Store的实例方法

在我们创建好Store实例后,我们应该怎么调用它的选项呢,那就用到了这些实例方法。

subscribe

subscribe的作用是订阅 store 的 mutationhandler 会在每个 mutation 完成后调用,接收 mutation 和经过 mutation 后的状态作为参数,如下:

const stop = store.subscribe((mutation, state) => {
  console.log(mutation.type)
  console.log(mutation.payload)
})

type是mutation里面的方法名,payload是对应的参数。默认情况下,新的处理函数会被添加到其链的尾端,如果想把处理函数添加到其链的最开始,可以通过向 options 添加 prepend: true 来覆写,如下:

const stop = store.subscribe(handler, { prepend: true })

停止订阅:

stop()

subscribeAction

subscribeAction的作用是订阅 store 的 actionhandler 会在每个 action 分发的时候调用并接收 action 描述和当前的 store 的 state 这两个参数:

const stop = store.subscribeAction((action, state) => {
  console.log(action.type)
  console.log(action.payload)
})

类比subscribe,它的默认情况也是新的处理函数会被添加到其链的尾端,如果想把处理函数添加到其链的最开始,可以通过向 options 添加 prepend: true 来覆写,如下:

const stop = store.subscribeAction(handler, { prepend: true })

停止订阅:

stop()

总结

我们需要注意的是:subscribe的作用是订阅 store 的 mutationsubscribeAction 的作用是订阅 store 的 action

想了解更多文章,传送门已开启:回首Vue3目录篇