react学习-高阶组件

1.简介
react高阶组件是一个函数,接收一个组件作为参数,返回一个新的组件,可以用来进行组件封装,将一些公共逻辑提取到高阶组件内部。
2.基本实现
以下案例为利用高阶组件来增强props

import React, { Component } from "react";

// 基础组件People
export class People extends Component {
  render() {
    return (
      <div>
        <h1>People</h1>
        <p>姓名:{this.props.name}</p>
        <p>年龄:{this.props.age}</p>
        <p>爱好:{this.props.hobby}</p>
      </div>
    );
  }
}

// 基础组件Boy
export class Boy extends Component {
  render() {
    return (
      <div>
        <h1>Boy</h1>
        <p>姓名:{this.props.name}</p>
        <p>年龄:{this.props.age}</p>
        <p>爱好:{this.props.hobby}</p>
      </div>
    );
  }
}

// 需求:给每个组件传多个props
// 用高阶组件实现
// 高阶组件
const PropsComponents = (Component) => {
  // 接受一个组件参数,将部分公共逻辑在这里处理,返回一个新的函数式组件
  const newComponent = (props) => {
    return <Component {...props} hobby="读书高阶组件"></Component>;
  };
  return newComponent;
};

// 传入基础组件生成新的组件
const PropsPeople = PropsComponents(People);
const PropsBoy = PropsComponents(Boy);

export class AddProps extends Component {
  render() {
    return (
      <div>
        <People name="张三" age="16" hobby="读书"></People>
        <Boy name="李四" age="18" hobby="读书"></Boy>
        {/* 高阶组件实现,hobby内容相同就封装在了高阶组件内部*/}
        <PropsPeople name="张三" age="16" />
        <PropsBoy name="李四" age="18" />
      </div>
    );
  }
}
export default AddProps;

效果图
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大兵的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值