[react] 高阶组件(HOC)有哪些优点和缺点?

本文探讨了React高阶组件(HOC)的优点,如降低组件间耦合,以及缺点,如组件嵌套导致的复杂性和ref隔离问题。同时提到了render props和Hook作为替代方案的优缺点,强调Hook可以解决嵌套问题并在return之外使用数据,但也存在闭包引用问题。
摘要由CSDN通过智能技术生成

[react] 高阶组件(HOC)有哪些优点和缺点?

HOC
优点
通过传递props去影响内层组件的状态,不直接改变内层组件的状态,降低了耦合度
缺点
组件多层嵌套, 增加复杂度与理解成本
ref隔断, React.forwardRef 来解决
高阶组件多层嵌套,相同命名的props会覆盖老属性
不清楚props来源与哪个高阶组件
render props
优点
props命名可修改,不存在相互覆盖
清楚props来源
不会出现组件多层嵌套
缺点
函数回调形式的嵌套
写法繁琐,没有hoc装饰器写法简单
无法在return以外的地方访问数据
hook
优点
解决了hoc,render props的嵌套问题
可以在 return 之外使用数据
可以重命名,不存在覆盖,且清楚数据来源
缺点
在闭包场景可能会引用到旧的state、props值

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论









主目录

与歌谣一起通关前端面试题

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小歌谣

放弃很容易 但是坚持一定很酷

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值