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

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

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

我们可以安装一个eslint插件来帮助我们避免这些问题。

  1. // 安装  
  2. npm install eslint-plugin-react-hooks --save-dev  
  3. // 配置  
  4. {  
  5.   "plugins": [  
  6.     // ...  
  7.     "react-hooks"  
  8.   ],  
  9.   "rules": {  
  10.     // ...  
  11.     "react-hooks/rules-of-hooks": "error"  
  12.   }  

自定义Hook

像上面介绍的HOC和mixin一样,我们同样可以通过自定义的Hook将组件中类似的状态逻辑抽取出来。

自定义Hook非常简单,我们只需要定义一个函数,并且把相应需要的状态和effect封装进去,同时,Hook之间也是可以相互引用的。使用use开头命名自定义Hook,这样可以方便eslint进行检查。

下面我们看几个具体的Hook封装:

日志打点

我们可以使用上面封装的生命周期Hook。

  1. const useLogger = (componentName, ...params) => {  
  2.   useDidMount(() => {  
  3.     console.log(`${componentName}初始化`, ...params);  
  4.   });  
  5.   useUnMount(() => {  
  6.     console.log(`${componentName}卸载`, ...params);  
  7.   })  
  8.   useDidUpdate(() => {  
  9.     console.log(`${componentName}更新`, ...params);  
  10.   });  
  11. };  
  12. function Page1(props){  
  13.   useLogger('Page1',props);  
  14.   return (<div>...</div>)  

修改title

(编辑:晋中站长网)

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

热点阅读