高阶组件

高阶组件(HOC)
定义:高阶组件是参数是组件,返回值也是一个组件的函数。

案例

import React from "react";
// hoc
// 是个函数,参数是组件,返回值也是组件
const foo = (Cmp) => (props) => {
  return (
    <div className="border">
      <Cmp {...props} />
    </div>
  );
};

function Child(props) {
  return <div className="border">child-{props.name}</div>;
}

// 链式调用
const Foo = foo(foo(Child));

export default function HocPage() {
  return (
    <div>
      <h3>hoc page</h3>
      <Foo name="参数"></Foo>
    </div>
  );
}

使用场景

1、input 不想去手动去写 value 和 input 事件时,可以使用高阶组件去封装。利用 React.cloneElement(组件, {value: "", onChange: () => {}})
2、withRouter

注意事项

1、不要再 render 方法中去使用 hoc
因为 render 方法会多次去调用,class 组件每次渲染都会去调 render 方法。这样做不仅性能不好,而且可能会丢失参数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容