Существуют некоторые различия между компонентом метода и компонентом класса .
Компонент метода:
Самый простой способ объявить компонент в React. вам нужно только объявить метод, который возвращает jsx
. пример :
const MessageComponent = ({ name }) => { return <h1>Hi {name}</h1> }
в дополнение к тому, что со времени введения React Hooks вы можете выполнять большинство функций, используя компонент метода
componentDidUpdate
= > useEffect(fn)
componentDidMount
=> useEffect(fn, [])
state
=> useState()
Компонент класса:
надежная версия компонента. С компонентом класса вы можете сделать больше. Props
будет по умолчанию в контексте класса this.props
. Вы можете использовать состояние, локальную переменную для вашего компонента. Вы можете добавить метод многих классов, которые имеют одно и то же состояние.
export default class MessageComponent extends Component {
state = {
message: 'default message'
}
renderMessage = () => {
return (
<h1>
Hi {this.props.name}
</h1>
)
}
render() {
return (
<div>
{this.renderMessage()}
</div>
)
}
}
Компонент класса VS Метод компонента
Основная причина отказа от использования компонента класса заключается в том, что вам нужен только простой компонент, такой как button
, card
или представительский компонент. Если ваш компонент не нуждается в сложном состоянии, вам лучше всего подойдет сложная логика c, method component
.