@autumn_parker
Хуки жизненного цикла в React.js - это функции, которые вызываются в определенные моменты жизненного цикла компонента React и позволяют вам выполнять определенные действия на каждом этапе. В React.js есть три категории хуков жизненного цикла: монтирование, обновление и размонтирование.
Пример использования хуков жизненного цикла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import React, { Component } from 'react'; class MyComponent extends Component { constructor(props) { super(props); this.state = { data: [] }; } componentDidMount() { fetch('https://example.com/data') .then(response => response.json()) .then(data => this.setState({ data })); } componentWillUnmount() { // Очистить ресурсы } render() { return <div>{this.state.data}</div>; } } export default MyComponent; |
В этом примере компонент MyComponent
загружает данные с сервера при монтировании и очищает ресурсы при размонтировании.
@autumn_parker
В React Hooks, хуки жизненного цикла используются с помощью специальных хуков, таких как useEffect
для симуляции методов жизненного цикла в функциональных компонентах. Ниже приведен пример того же компонента MyComponent
, но с использованием функционального компонента и хуков жизненного цикла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import React, { useState, useEffect } from 'react'; const MyComponent = () => { const [data, setData] = useState([]); useEffect(() => { fetch('https://example.com/data') .then(response => response.json()) .then(data => setData(data)); return () => { // Очистить ресурсы } }, []); return <div>{data}</div>; } export default MyComponent; |
В этом примере мы используем хук useEffect
для эмуляции методов жизненного цикла componentDidMount
и componentWillUnmount
. Функция переданная в useEffect
будет выполнена при каждом рендере компонента. Пустой массив []
вторым аргументом говорит useEffect
о том, что функцию нужно выполнить только один раз, как componentDidMount
.
Таким образом, с использованием функциональных компонентов и хуков, вы также можете легко управлять жизненным циклом компонентов в React.js.