React-class component 和 function component 的区别

1、function component:

function aa(props) {
	return <h1>this is {props.name}</h1>
}

2、class component:

class bb extends React.Component {
	render() {
		const { name } = this.props;
		return  <h1>this is {name}</h1>
	}
}

function component 和 class component 的区别?

  1. 语法不同
    functional component 语法更简单,只需要传入一个props参数,返回一个react片段。
    class component 要求先继承 React.Component,然后创建一个 render 方法,在 render 里面返回 react 片段。

  2. state 状态
    function component 只是一个普通的函数,所以不可以使用 this.state , setState()。这也是它被叫做无状态组件的原因。
    所以如果一个组件需要用到状态的时候要用 class component。

  3. lifecycle hooks 生命周期
    function component 不具有生命周期,因为所有的生命周期钩子函数均来自于 React.Component。
    所以当一个组件需要生命周期钩子的时候我们也需要 class component。

为什么要用 function component?
function component 和 class component 比起来缺少那么多功能为什么还要用function componet?

  1. function component 更易于编写阅读和测试
  2. 代码量更少,上手容易
  3. 因为没有状态,可以更好的实现容器和表现的分离,可以只负责表现层的逻辑,不用考虑因为复杂的逻辑去改变状态从而带来的麻烦,有利于代码复用。
  4. react团队提倡使用

为什么要用 class component?
虽然function component 有很多好处,但是有些时候class component 还是不可替代的。

  1. 当需要实现一些容器组件的时候,需要改变内部状态来实现组件的改变的时候
  2. 当需要用到生命周期钩子函数实现一些功能的时候
  3. 当我们需要提升性能时,性能是一个很重要的问题,有些时候我们需要减少组件的渲染次数,我们就需要在组件内部用shouldComponentUpdate 方法来去判断,或者继承React.PureComponent 类(自动调用shouldComponentUpdate)来实现 state 和 props 的浅比较进行判断组件是否重新渲染。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值