小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
这篇文章我们讲一下Store的实例方法:subscribe和subscribeAction。
Store的实例方法
在我们创建好Store实例后,我们应该怎么调用它的选项呢,那就用到了这些实例方法。
subscribe
subscribe的作用是订阅 store 的 mutation。handler 会在每个 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 的 action。handler 会在每个 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 的 mutation,subscribeAction 的作用是订阅 store 的 action。
想了解更多文章,传送门已开启:回首Vue3目录篇 !