hoc --- 函数式

完成一个重(chong)用逻辑的组件的技术 ==》 hoc === 高阶组件

原来你有一个 组件A是一个可以满足需求A的组件。此时来了一个需求B 和A的需求逻辑部分相同, B需求比A需求的内容多一部分逻辑判断时 

1、A写A的 B写B的 

   不同需求逻辑分开 可以 但是会有较多的重复代码

2、在A组件基础上增加一个入参(专门用来判断展示A还是B)、并在A组件内部进行入参的判断后展示结果

    可以   但此时就污染了A组件, A组件不再是一个单纯的A了(她还能实现B)

3、使用hoc方式 就可以避免污染A 又可以使用A的东西

const B = ({children, p1}) => {

    return p1 ? (<span>啊哈哈哈哈</span>) : children;

};

<B>

    <A />

</B>

可拆卸式 如果将来B改成A也可以直接卸除 B的组件就好了


如果需要给A组件进行入参注入 可以增加一个react.cloneElement

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

推荐阅读更多精彩内容

  • 长久以来,面向对象在 JavaScript 编程范式中占据着主导地位。不过,最近人们对函数式编程的兴趣正在增长。函...
    神刀阅读 496评论 0 0
  • 内置函数式接口来由来 我们知道使用Lambda表达式的前提是需要有函数式接口。而Lambda使用时不关心接口名,抽...
    木子教程阅读 365评论 0 2
  • 在我工作时,总有一些总结性的想法,但是我并不擅长总结,只爱说大白话,直到我开始接触函数式编程,我才明白,这就是我一...
    洲行阅读 782评论 3 6
  • 其实之所以讲到这里是因为,当我们使用React的组件化开发Web应用的时候,就会遇到这样的问题,很多组件需要某个功...
    井润阅读 421评论 0 0
  • 一、JS引擎的工作原理[https://www.cnblogs.com/onepixel/p/5090799.ht...
    yolkpie阅读 212评论 0 0