React中key的作用是什么?解决了什么问题? Class组件和函数组件有什么区别?使用场景?

key一般用在动态渲染dom节点的时候,我们给被渲染的节点的一个属性,因为react使用了虚拟dom,会通过diff比较差异,那么同级节点的tag标签都一样,属性都一样,可能会出现一些问题,警告,或者报错,使用key给同级节点,确保节点的唯一性,跟id不同,id是作用于全局下的唯一,而key只是在一个节点之下的子节点上

不是说写上key性能就会提高,主要是是因为不写key是将所有的文本内容替换一下,节点不会发生变化。

相反,写key就涉及到节点的增删,发现旧节点不存在了,将其删除,在新key在之前没有则插入,这就又增加性能的开销。

总结:

key是唯一的

key不能使用随机值。

使用index作为key值,对性能没有优化。

Class组件和函数组件有什么区别?使用场景?

类组件就是通过es6类的编写形式写组件,并且该类必须继承React.Component

如果想要访问父组件传递过来的参数可以通过this.props访问。

在组件必须实现render方法在return方法中返回React xml和React渲染的数据。

函数组件 顾名思义就是通过编写函数的方式实现一个组件,是react定义组件中最简单的方式。

针对两种组件的区别,有几个大方向。

1、编写形式

2、状态管理

3、生命周期

4、调用方式

5、获取渲染的值

1、函数组件又被称无状态组件,而类组件是有状态组件,具体点,函数组件不可以定义自己的数据状态,而类组件可以使用state定义数据状态。

2、函数组件不能使用声明周期函数,而类组件可以,因为函数组件是无状态组件,所以react16.8前的函数组件一般只用来做渲染。

3、class组件是由this对象,函数组件没有this对象

4、组件调用: class组件实例化后调用实例对象的render方法,函数组件直接执行函数。

5、class组件内部的话,render方法return返回渲染jsx模板,函数组件直接返回即可

总结:

两种总结都有各自优缺点,函数组件语法更短,更简单,使得它更容易开发,理解和测式。

而类组件会大量使用this让人感到困惑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值