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

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

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

下面定义用于双向绑定的HOC,其代理了表单的onChange属性和value属性:

  •  发生onChange事件时调用上层Form的changeModel方法来改变context中的model。
  •  在渲染时将value改为从context中取出的值。 
  1. function proxyHoc(WrappedComponent) {  
  2.   return class extends Component {  
  3.     static contextTypes = {  
  4.       model: PropTypes.object,  
  5.       changeModel: PropTypes.func  
  6.     }  
  7.     onChange = (event) => {  
  8.       const { changeModel } = this.context;  
  9.       const { onChange } = this.props;  
  10.       const { v_model } = this.props;  
  11.       changeModel(v_model, event.target.value);  
  12.       if(typeof onChange === 'function'){onChange(event);}  
  13.     }  
  14.     render() {  
  15.       const { model } = this.context;  
  16.       const { v_model } = this.props;  
  17.       return <WrappedComponent  
  18.         {...this.props}  
  19.         value={model[v_model]}  
  20.         onChange={this.onChange}  
  21.       />;  
  22.     }  
  23.   }  
  24. }  
  25. @proxyHoc  
  26. class Input extends Component {  
  27.   render() {  
  28.     return <input {...this.props}></input>  
  29.   }  

(编辑:晋中站长网)

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

热点阅读