React higher order components (高阶组件 hoc)

React Redux 是一个连接 Redux store 和 react 组件的库, React Redux 大量使用高阶组件模式。

Higher order component (HOC) : A component (HOC) that renders another component (regular component).
高阶组件 HOC 呈现另一个常规组件。

通过使用高阶组件模式,可以修改一系列存在的组件,避免多次重写代码。

代码举例:

import React from "react";
import ReactDOM from "react-dom";

const Info = (props) => (
  <div>
    <h1>Info</h1>
    <p>The info is: {props.info}</p>
  </div>
);

const requireAuthentication = (WrappedComponent) => {
   return (props) => (
     <div>
       {props.isAuthenticated ? (
         <WrappedComponent {...props} />
       ) : (
         <p>Please login to view the info.</p>
       )}
     </div>
   );
 };

const AuthInfo = requireAuthentication(Info);
 ReactDOM.render(
   <AuthInfo isAuthenticated={true} info="There are the details" />,
   document.getElementById("app")
 );

高阶组件的目标是实现代码重用,同一高阶组件可以呈现多个组件。

以上代码,requireAuthentication 是常规函数,返回高阶组件。
如果 isAuthenticatedtrue,呈现传递进去的 WrappedComponent,否则,显示 Please login to view the info,不管传递什么组件作为参数,都是一样的效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值