加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

【React深入】从Mixin到HOC再到Hook

发布时间:2019-04-12 04:39:12 所属栏目:优化 来源:ConardLi
导读:导读 前端发展速度非常之快,页面和组件变得越来越复杂,如何更好的实现状态逻辑复用一直都是应用程序中重要的一部分,这直接关系着应用程序的质量以及维护的难易程度。 本文介绍了React采用的三种实现状态逻辑复用的技术,并分析了他们的实现原理、使用方

如果我们在高阶组件对原组件进行了修改,例如下面的代码:

  1. InputComponent.prototype.componentWillReceiveProps = function(nextProps) { ... } 

这样就破坏了我们对高阶组件的约定,同时也改变了使用高阶组件的初衷:我们使用高阶组件是为了增强而非改变原组件。

约定-透传不相关的props

使用高阶组件,我们可以代理所有的props,但往往特定的HOC只会用到其中的一个或几个props。我们需要把其他不相关的props透传给原组件,如下面的代码:

  1. function visible(WrappedComponent) {  
  2.   return class extends Component {  
  3.     render() {  
  4.       const { visible, ...props } = this.props;  
  5.       if (visible === false) return null;  
  6.       return <WrappedComponent {...props} />;  
  7.     }  
  8.   }  

我们只使用visible属性来控制组件的显示可隐藏,把其他props透传下去。

约定-displayName

在使用React Developer Tools进行调试时,如果我们使用了HOC,调试界面可能变得非常难以阅读,如下面的代码:

  1. @visible  
  2. class Show extends Component {  
  3.   render() {  
  4.     return <h1>我是一个标签</h1>  
  5.   }  
  6. }  
  7. @visible  
  8. class Title extends Component {  
  9.   render() {  
  10.     return <h1>我是一个标题</h1>  
  11.   }  

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读