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

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

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

将原组件的状态提取到HOC中进行管理,如下面的代码,我们将Input的value提取到HOC中进行管理,使它变成受控组件,同时不影响它使用onChange方法进行一些其他操作。基于这种方式,我们可以实现一个简单的双向绑定,具体请看双向绑定。

通过属性代理实现

  1. function proxyHoc(WrappedComponent) {  
  2.   return class extends Component {  
  3.     constructor(props) {  
  4.       super(props);  
  5.       this.state = { value: '' };  
  6.     }  
  7.     onChange = (event) => {  
  8.       const { onChange } = this.props;  
  9.       this.setState({  
  10.         value: event.target.value,  
  11.       }, () => {  
  12.         if(typeof onChange ==='function'){  
  13.           onChange(event);  
  14.         }  
  15.       })  
  16.     }  
  17.     render() {  
  18.       const newProps = {  
  19.         value: this.state.value,  
  20.         onChange: this.onChange,  
  21.       }  
  22.       return <WrappedComponent {...this.props} {...newProps} />;  
  23.     }  
  24.   }  
  25. }  
  26. class HOC extends Component {  
  27.   render() {  
  28.     return <input {...this.props}></input>  
  29.   }  
  30. }  
  31. export default proxyHoc(HOC); 

操作state

(编辑:西安站长网)

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

热点阅读