订阅(退订)在redux存储内部如何工作?

时间:2019-02-03 12:39:23

标签: javascript redux

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方法要复杂得多。

0 个答案:

没有答案