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

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

发布时间:2019-04-12 03:57:26 所属栏目:建站 来源:ConardLi
导读:导读 前端成长速率很是之快,页面和组件变得越来越伟大,怎样更好的实近况态逻辑复用一向都是应用措施中重要的一部门,这直接相关着应用措施的质量以及维护的难易水平。 本文先容了React回收的三种实近况态逻辑复用的技能,并说明白他们的实现道理、行使方

React 16.3版本提供了一个forwardRef API来辅佐我们举办refs转达,这样我们在高阶组件上获取的ref就是原组件的ref了,而不必要再手动转达,假如你的React版本大于16.3,可以行使下面的方法:

  1. function hoc(WrappedComponent) {  
  2.   class HOC extends Component {  
  3.     render() {  
  4.       const { forwardedRef, ...props } = this.props;  
  5.       return <WrappedComponent ref={forwardedRef} {...props} />;  
  6.     }  
  7.   }  
  8.   return React.forwardRef((props, ref) => {  
  9.     return <HOC forwardedRef={ref} {...props} />;  
  10.   });  

申饬—不要在render要领内行使高阶组件

React Diff算法的原则是:

  •  行使组件标识确定是卸载照旧更新组件
  •  假如组件的和前一次渲染时标识是沟通的,递归更新子组件
  •  假如标识差异卸载组件从头挂载新组件

每次挪用高阶组件天生的都是是一个全新的组件,组件的独一标识相应的也会改变,假如在render要领挪用了高阶组件,这会导致组件每次城市被卸载后从头挂载。

约定-不要改变原始组件

官方文档对高阶组件的声名:

高阶组件就是一个没有副浸染的纯函数。

我们再来看看纯函数的界说:

假如函数的挪用参数沟通,则永久返回沟通的功效。它不依靠于措施执行时代函数外部任何状态或数据的变革,必需只依靠于其输入参数。

该函数不会发生任何可调查的副浸染,譬喻收集哀求,输入和输出装备或数据突变。

(编辑:湖南网)

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

热点阅读