React 高阶组件注意事项

2020-04-01  本文已影响0人  三元一只十元三只

使用高阶组件应当注意的几点:

1、 高阶组件作为一个高复用性的函数。应该尽量做到在HOC函数中不修改原有组件。昨天说到,高阶组件接收一个组件作为参数,并且返回一个新的组件。HOC对传入组件不应该做改变。 高阶组件作为一种抽象方式,不应该关心其内部的代码逻辑。我们应该使用组件的组合来达到我们的目的。

2、 Conversion: HOC函数可以通过组件的特性来传参。但是不应该大幅修改Conversion。这一段我没太看懂, 贴一段官方的例子:

render() {

  // Filter out extra props that are specific to this HOC and shouldn't be

  // passed through

  const { extraProp, ...passThroughProps } = this.props;

  // Inject props into the wrapped component. These are usually state values or

  // instance methods.

  const injectedProp = someStateOrInstanceMethod;

  // Pass props to wrapped component

  return (

    <WrappedComponent

      injectedProp={injectedProp}

      {...passThroughProps}

    />

  );

}

3、 Conversion2。 最大化的组合。

这里要纠正一下昨天的错误,HOC函数接收不限个数的参数,一般情况下接收的第一个参数作为被包含组件,第二个参数作为数据来源。 有时候HOC仅接收一个参数,就是被包含的组件。

4、 Conversion3 高阶函数的代码结构建议是在定义HOC函数时,接收的参数名称应该就是组件的名称。 例如高阶组件名为 withSubscription, 被包装组件名为CommentList。显示名称应该是 withSubscription(CommentList), 方便调试。

上一篇 下一篇

猜你喜欢

热点阅读