react——高阶组件基本

高阶组件的定义:

参数为组件,返回值为新组件的函数;(高阶组件是一个函数)

import React, { PureComponent } from 'react'

class App extends PureComponent {
    render() {
        return (
            <div>
                App:{this.props.name}
            </div>
        )
    }
}
function enhanceComponent(WrappedComponent){
    class NewComponent extends PureComponent{
        render(){
            return <WrappedComponent {...this.props}/>
        }
    }
    return NewComponent
}
const EnhanceComponent=enhanceComponent(App)
export default EnhanceComponent

高阶组件只是javascript的一个函数写法;

import React, { PureComponent } from 'react'

function enhanceRegionProps(WrappedComponent){
    return props=>{
            return <WrappedComponent {...props} region="中国"/>
    }
}

class Home extends PureComponent{
    render(){
    return( <h2>Home:{`昵称:${this.props.nickname} 
                    等级:${this.props.level}
                    区域:${this.props.region}`}</h2>)
    }
}
class About extends PureComponent{
    render(){
    return <h2>About:{`昵称:${this.props.nickname} 等级:${this.props.level} 区域:${this.props.region}`}</h2>
    }
}

const EnhanceHome = enhanceRegionProps(Home);
const EnhanceAbout = enhanceRegionProps(About);

class App extends PureComponent {
    render() {
        return (
            <div>
                App:
                <EnhanceHome nickname="cccd" level={90}/>
                <EnhanceAbout nickname="kkkk" level={99}/>
            </div>
        )
    }
}
export default App

高阶组件实现了对组件的属性的增强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值