zoukankan      html  css  js  c++  java
  • 高阶组件HOC

    高阶组件HOC

    高阶函数:一个函数内部返回一个新的函数,内部采用闭包的写法。

    var add = x => {
      return y => {
      	return x+y
      }
    }
    //调用add
    add(3)(1)
    
    

    高阶组件:(HOC) Higher-Order-Component

    高阶组件本质上就是一个函数,内部可以接收一个组件,然后返回新的组件;简单来说就是组件复用

    例如: React.memo() connect()

    封装一个具有版权信息的高阶组件WithCopy,内部接收一个组件,最终返回一个新的组件。

    import React, { Component } from 'react'
    //定义一个高阶组件WithCopy 本质上是一个函数,接受一个组件,返回一个全新的组件。
    //connect()(UIComponent)  只需要通过this.props.xxx可以获取到传递来的属性了
    //类组件 函数式组件(无状态组件)
    //表单元素而言  受控、非受控
    //HOC高阶组件 :redux中connect()  React.memeo(functional component)
    const WithCopy = Comp=>{
        return class WithCopyComp extends Component{
            render(){
                return (
                    <div>
                        <Comp name={this.props.name}/>
                        版权信息&copy;
                    </div>
                )
            }
        }
    }
    export default WithCopy
    

    创建一个About.js调用WithCopy组件

    import React, { Component } from 'react'
    import WithCopy from './WithCopy'
     class About extends Component {
        render() {
            return (
                <div>
                    关于-{this.props.name}
                </div>
            )
        }
    }
    export default WithCopy(About)
    
  • 相关阅读:
    Javascript基础知识4
    JavaScript基础知识3
    JavaScript基本知识2
    JavaScript基本知识1
    BFC?来自CSS中的BFC
    创建【哆啦A梦】风格字体
    理解JavaScript函数
    我所了解的BFC
    jQuery
    html
  • 原文地址:https://www.cnblogs.com/cupid10/p/14168502.html
Copyright © 2011-2022 走看看