初步理解React高阶组织

前言

由于初学React,对前端各框架也没有深入的了解,所以理解React官网中对高阶组织的文档很困难,通过学习网上很对大佬的博客,对高阶组件写下一点自己浅显的理解,勿喷!

什么是高阶组件

高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式(React官网)。

为什么要用高阶组件

React 不推荐使用mixins用于解决切面问题,高阶组织类似于Spring中AOP功能,或者说是装饰器模式,在React中能很好的解决切面问题。

高阶组件能用来干什么

  • 代码复用,抽象逻辑
  • 渲染劫持
  • State 抽象和更改
  • Props更改

下面例子介绍了代码复用和渲染劫持的功能


HOC组件实现

HOC 接收一个组件作为参数,并返回一个被 增强 的新组件。

import React, {Component} from "react";

export default (WrappedComponent) => {
    return class AbstractComponent extends Component {
        constructor(props) {
            super(props)
            this.state = {}
        }

        render() {
        	// 代码复用
            return (<div id={this.props.id}} onClick={this.props.onClick}>
            		// Props Proxy (PP)
                    <WrappedComponent {...this.props}/>
                    // 或 React.createElement(WrappedComponent, this.props, null)
                </g>
            )
        }
    }
}

原始组件实现

方式一

import React from 'react';
import HOC from './HOC'

@HOC
class youComponent extends React.Component {
    render() {
        return <div>......<div>
    }
}

export default youComponent;

方式二

import React from 'react';
import HOC from './HOC'

class youComponent extends React.Component {
    render() {
        return <div>......<div>
    }
}

export default HOC(youComponent);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值