Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: hook

Как создать и использовать кастомные хуки?

Этот вопрос проверяет способность создавать и использовать кастомные хуки в React

Короткий ответ

Кастомные хуки — это функции, которые позволяют объединять логику состояния и эффекты, чтобы их можно было переиспользовать в различных компонентах. Они начинаются с префикса use, могут использовать другие хуки внутри и возвращать значения или функции для управления состоянием. Кастомные хуки помогают сократить дублирование кода и упрощают поддержку приложения.

Длинный ответ

Кастомные хуки в React — это мощный инструмент для создания переиспользуемой логики, которая может использоваться в различных компонентах. Кастомные хуки позволяют обернуть логику состояния и эффекты в одну функцию, что упрощает поддержку и тестирование кода.

Чтобы создать кастомный хук, выполните следующие шаги:

  1. Определите функцию, начинающуюся с use:

import { useState, useEffect } from 'react'; 

function useFetch(url) {
  	const [data, setData] = useState(null);  
  	const [loading, setLoading] = useState(true);  
  	const [error, setError] = useState(null);  
  
  	useEffect(() => {
      		fetch(url)      
      			.then(response => {    
      	    			if (!response.ok) {       
      	       				throw new Error('Ошибка сети');        
      	    			}        
      	    			return response.json();      
      	 		})      
      	 		.then(data => {    
      	     			setData(data);        
      	     			setLoading(false);      
      			 })      
      	 		.catch(error => {    
      	     			setError(error);        
      	     			setLoading(false);      
      			 });  
   	}, [url]);  
   
   	return { data, loading, error }; // Возвращаем значения и состояние 
}

В этом примере useFetch — это кастомный хук, который получает данные по указанному URL и управляет состоянием загрузки и ошибок.

  1. Используйте кастомный хук в компоненте:

import React from 'react'; 
import { useFetch } from './useFetch'; // Импортируем кастомный хук 

function DataDisplay({ url }) {
  	const { data, loading, error } = useFetch(url); // Используем хук  
  
  	if (loading) return <p>Загрузка...</p>;  
  	if (error) return <p>Ошибка: {error.message}</p>;  
  
  	return (
      		<ul>   
         		{data.map(item => (   
              			<li key={item.id}>{item.name}</li>      
        		 ))}    
     		</ul>  
  	); 
}

В этом компоненте DataDisplay мы используем кастомный хук useFetch для получения данных. Это позволяет избежать дублирования кода и делает компонент более чистым и читаемым. 

Кастомные хуки могут быть использованы для любой логики состояния или побочных эффектов, что делает их очень универсальным инструментом в React. Используя кастомные хуки, вы можете организовать и структурировать ваш код, облегчая его сопровождение и тестирование.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • React

    React

Ключевые слова

#hook

Подпишись на React Developer в телеграм