react函数式组件与类组件

函数式组件和类组件的差异有很多,例如函数式组件没有生命周期而类组件有生命周期一类的想必大家都很清楚。

这里讨论的是在函数是组件里使用HOOK让函数是组件拥有了类组件的一些特性之后,这些特性在函数式组件与类组件里的差别在哪里。

首先,我们要铭记两点(重点):
1、函数式组件只是返回一个 React Element。我们渲染一个函数式组件时,只是执行了一次函数,得到了一个React Element,并没有产生实例。
2、类组件是一个类实例,通过new得来的,只不过我们看不见new的过程而已。当我们渲染类组件时,其实是调用这个类实例的render函数,进而得到一个React Element。

这就引出了函数式组件与类组件的最大区别:
1、函数式组件的props和state等都是独立存在的,重新渲染函数式组件时只是重新执行了一次函数;
2、类组件由于是一个类实例,这就导致了它的props和state等都是挂载到这个实例上的,每次导致类实例重新渲染的props和state其实是同一个。

由于以上原因,当我们在函数式组件中使用其它的HOOK钩子时,例如useEffect、useRef等,不能因为相似就从类组件的角度出发去看待这些函数式组件的特性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值