博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 高阶组件
阅读量:4688 次
发布时间:2019-06-09

本文共 892 字,大约阅读时间需要 2 分钟。

摘要

高阶组件为了解决抽象基础组件的通用方法/属性,给多个基础组件增加buffer。如果立足基础组件理解,则高阶组件是有个经验加成的基础组件,基础组件继承于高阶组件。

写法

mixin 写法

包裹型写法,如下 a 即为 b 的高阶组件, 纯函数式编程, 可用串联式编写

const a = enhance(b);const c = enhance1(enhance2(b));

包裹型可以实现渲染劫持, 由高阶组件控制基础组件的渲染方式。

function iiHOC(WrappedComponent) {  return class Enhancer extends WrappedComponent {    render() {      const elementsTree = super.render()      let newProps = {};      if (elementsTree && elementsTree.type === 'input') {        newProps = {value: 'may the force be with you'}      }      const props = Object.assign({}, elementsTree.props, newProps)      const newElementsTree = React.cloneElement(elementsTree, props, elementsTree.props.children)      return newElementsTree    }  }}

decorator 写法

装饰器写法,

@aclass b extends c {}

优缺点

mixin

mixin 并不是非常推荐的方法。

缺点:

  • 一个组件和它的 mixin 之间的关联是隐式的。
  • 单一组件中使用多个 mixin 时会产生冲突。
  • 性能优化变复杂

转载于:https://www.cnblogs.com/huxiaoyun90/p/7297363.html

你可能感兴趣的文章