【发布时间】:2021-08-11 13:04:13
【问题描述】:
在花了一些时间学习 React 之后,我了解了创建组件的两种主要范式之间的区别。
我的问题是我应该什么时候使用哪一个,为什么?一个比另一个有什么好处/权衡?
ES6 类:
import React, { Component } from 'react';
export class MyComponent extends Component {
render() {
return (
<div></div>
);
}
}
功能:
const MyComponent = (props) => {
return (
<div></div>
);
}
只要该组件没有状态可操作,我就会认为是函数式的,但是是这样吗?
我猜如果我使用任何生命周期方法,最好使用基于类的组件。
【问题讨论】:
-
看来你已经知道答案了。
-
如果你有一个只有render方法的组件,你可以把它变成函数形式。如果您需要的不仅仅是无状态渲染功能,请使用类
-
为了更简洁,试试这个:
const MyComponent = (props) => <div>...</div> -
如果可以避免,我从不使用功能性。因为我不可避免地最终需要重构为基于类的方式。然后经常需要在那之后重构回功能。
-
在 2020 年,正确的做法是尽可能使用功能组件,因为它们支持钩子,并且钩子(在性能方面和架构上)比替代品更好。
标签: javascript reactjs ecmascript-6 redux