使用增强器扩展Redux的createStore的模式是什么?

时间:2018-05-01 06:09:41

标签: javascript reactjs design-patterns redux store

在撰写关于将Redux状态与组件分离的博客文章时,我注意到enhancer link中使用createStore的用法:

export default function createStore(reducer, preloadedState, enhancer) {
  /* .... */
  if (typeof enhancer !== 'undefined') {
    if (typeof enhancer !== 'function') {
      throw new Error('Expected the enhancer to be a function.')
    }

    return enhancer(createStore)(reducer, preloadedState)
  }
  /* ... */
  return store;
}

因此,通用模式是:

function func(arg1, /* ... */, argN, enhancer) {
  /* .... */
  if (typeof enhancer === 'function') {    
    return enhancer(func)(arg1, /* ... */, argN);
  }
  /* ... */
  return result;
}

我为此感到很兴奋。现在我想知道你将如何对它进行分类/命名,以及它是否是一个特别优秀的代码片段,或者是一些系统方法的结果,它是我想学习并开始应用的更大的一部分

1 个答案:

答案 0 :(得分:1)

我认为你会称之为Decorator