Каков назначение хука useId в React и когда его следует использовать?
Хук useId
был добавлен в React 18 и предназначен для генерации уникальных идентификаторов, которые могут использоваться в компонентах. Это особенно полезно в ситуациях, когда вам нужно привязать метки (<label>
) к элементам управления формами (<input>
, <select>
и т. д.) с помощью атрибута id
, чтобы обеспечить доступность и улучшение пользовательского опыта.
Когда использовать useId
Основные случаи использования useId
:
id
, чтобы избежать дублирования.Пример использования useId
Приведенный ниже пример демонстрирует, как использовать useId
для генерации уникальных id
для меток и полей ввода.
import React, { useId } from 'react';
const InputWithLabel = ({ label }) => {
// Генерация уникального id
const id = useId();
return (
<div>
<label htmlFor={id}>{label}</label>
<input id={id} type="text" />
</div>
);
};
const MyForm = () => {
return (
<form>
<InputWithLabel label="Имя" />
<InputWithLabel label="Фамилия" />
<button type="submit">Отправить</button>
</form>
);
};
export default MyForm;
Как это работает?
InputWithLabel
, мы вызываем useId()
, который возвращает уникальный идентификатор для каждого экземпляра этого компонента.htmlFor
для метки и как значение атрибута id
для поля ввода. Это связывает метку с полем, что позволяет пользователю кликом на метку активировать соответствующее поле ввода.InputWithLabel
будет иметь уникальные id
, предотвращая конфликты с другими элементами на странице.Заключение
Хук useId
является мощным инструментом для упрощения работы с уникальными идентификаторами в React, обеспечивая лучшее взаимодействие пользователя и доступность сайта. Используйте его, когда вам нужно генерировать уникальные идентификаторы в повторяющихся компонентах для улучшения структуры вашего кода и пользовательского опыта.