在this guide by Dan Abramov中,他重新创建了redux存储的基本实现。
subscribe
方法如下所示
const subscribe = (listener)=>{
listeners.push(listener) //subscribe
return ()=>{
listeners = listeners.filter(l => l !== listener) //unsubscribe
}
}
每次调用dispatch
时,它都会调用listeners
数组中的所有函数。
来自redux文档:
要取消订阅更改侦听器,请调用subscribe返回的函数。
const unsubscribe = store.subscribe(handleChange)
为什么要这样处理?该功能对我来说似乎很违反直觉,并且比实现专用的unsubscribe
方法要复杂得多。