【问题标题】:Best practices on order of functs with recompose.pure and recompose.composerecompose.pure 和 recompose.compose 函数顺序的最佳实践
【发布时间】:2018-04-09 04:04:45
【问题描述】:

我想用 recompose.pure 和其他 hoc 组合(重构)一个 React 组件。
我应该按什么顺序执行此操作?

  • compose(pure, anOtherHoc)(MyComp);
  • compose(anOtherHoc, pure)(MyComp);

决定这个的标准是什么?

import { compose, pure } from "recompose";
const MyComp = ({}) => (<div>test</div>);
export default compose(pure, anOtherHoc)(MyComp);

【问题讨论】:

    标签: reactjs recompose


    【解决方案1】:

    传递给 compose 函数的每个参数都会为您要增强的组件创建另一个包装器。

    所以它真的取决于anOtherHoc - 这是一个纯组件,即它是否只需要在传递给它的道具发生变化时更新?

    如果是,则将pure放在首位,它会包裹anOtherHoc,然后包裹MyComp

    如果不是,把它放在anotherHoc之后,然后MyComp将包裹pure,这将包裹MyComp

    【讨论】:

    • 就我而言,anOtherHoc 是来自 react-intl 的“injectIntl​​”。该 injectIntl​​ 的状态可能会因外部原因(语言更改)而改变。所以injectIntl​​ 必须在pure 之前??对吗?
    • 我不熟悉这个库,我会继续测试当您将其包装为“纯”时切换语言是否继续工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多