高阶组件学习笔记(一)

高阶组件学习笔记(一)
高阶函数
高阶函数定义
函数可以作为参数被传递,函数可以作为函数值输出。
高阶函数案例
1、setTimeOut(()=>xxx,1000),,()=>xxx函数作为参数传递,说明setTimeOut是高阶函数。
2、function add(x, y, f) {
return f(x) + f(y);
},add函数接收的三个参数x、y、f,其中f是作为一个函数。该函数最终的返回结果是一个函数,这就是一个简单的高阶函数。
JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数(阮一峰)。
在JavaScript里面,函数是一种放内存方法区里面的特殊数据结构,是一个变量(不是Java里面的引用类型)
在这里插入图片描述
在这里插入图片描述
地位等同于字符串之类的,只是一个变量。(个人理解)
高阶组件
高阶组件定义
高阶组件,接受组件作为参数,并返回新组件的函数。高阶组件是一个函数,不是组件!
高阶组件是基于高阶函数的一种工厂函数,用于包裹原来的组件,使得原来的组件功能加强。
高阶组件的意义
1、多个组件都需要某个相同的功能,使用高阶组件减少重复实现。
2、更加动态地扩展功能。

高阶组件的写法

1.实现一个普通组件。
在这里插入图片描述
  2.把普通组件用函数包裹,并用return 抛出,函数要接受一个参数。

编写一个普通组件,然后将普通组将作为一个返回结果放在一个对外暴露的函数里面。

高阶组件的使用
1、嵌套包裹式:higherOrderComponent(Com)
在这里插入图片描述
2、装饰器式:@higherOrderComponent

使用装饰器注意的地方:
1、使用 script里面的eject命令,获取对webpack的控制权。
2、安装babel装饰器的依赖cnpm install @babel/plugin-proposal-decorators
3、添加配置
在这里插入图片描述
React装饰器模式:
在这里插入图片描述

高阶组件应用场景
1、用于定义一种设计模式。
2、代码复用,逻辑抽象。shareui的组件底层使用(bootstrap-react)的代码
3、渲染劫持,高阶函数劫持组件的渲染方法(render)。
4、State 抽象和更改。
5、Props 更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值