React Aria — это библиотека для создания доступных интерфейсов в React. Для начала работы с ней необходимо установить пакет и правильно настроить зависимости. React Aria распространяется как набор модулей, каждый из которых предназначен для определённых компонентов и утилит, поэтому важно понимать базовую структуру установки.
Для установки React Aria с помощью npm используется команда:
npm install @react-aria/ssr @react-aria/utils @react-aria/focus @react-aria/interactions
Разбор параметров:
@react-aria/ssr — модуль для корректного рендеринга на
стороне сервера, предотвращает ошибки при использовании хуков, зависящих
от window или document.@react-aria/utils — набор утилит для управления
состоянием компонентов, обработки событий и вспомогательных
функций.@react-aria/focus — управление фокусом, обеспечение
доступности для клавиатурной навигации.@react-aria/interactions — обработка пользовательских
взаимодействий, таких как нажатия, ховеры, фокус.Для конкретных компонентов могут потребоваться дополнительные пакеты,
например @react-aria/button, @react-aria/menu,
@react-aria/checkbox. Их установка выполняется
аналогично:
npm install @react-aria/button @react-aria/menu @react-aria/checkbox
После установки пакеты автоматически добавляются в
package.json и становятся доступными для импорта в
проект.
Если проект использует yarn, установка аналогична,
но используется команда yarn add:
yarn add @react-aria/ssr @react-aria/utils @react-aria/focus @react-aria/interactions
Для отдельных компонентов:
yarn add @react-aria/button @react-aria/menu @react-aria/checkbox
Yarn обеспечивает более быструю установку и кэширование пакетов, что удобно для крупных проектов с множеством зависимостей.
@react-aria/focus@3.13.0), можно зафиксировать
совместимость с текущим проектом.После установки пакетов они импортируются в файлы компонентов. Например, для кнопки с доступностью:
import { useButton } from '@react-aria/button';
import { useFocusRing } from '@react-aria/focus';
import { usePress } from '@react-aria/interactions';
import { mergeProps } from '@react-aria/utils';
function AccessibleButton(props) {
let { buttonProps } = useButton(props);
let { focusProps, isFocusVisible } = useFocusRing();
let { pressProps } = usePress(props);
return (
<button {...mergeProps(buttonProps, focusProps, pressProps)}>
{props.children}
</button>
);
}
Здесь используется сочетание нескольких модулей для:
useFocusRing),usePress),mergeProps).Для корректной работы React Aria рекомендуется использовать
React 18+, так как библиотека использует новые хуки и
возможности Concurrent Mode. Также стоит убедиться, что сборщик
поддерживает JSX и ES Modules (webpack, Vite
или Parcel), чтобы избежать проблем при импорте отдельных
пакетов.
Использование npm или yarn зависит от предпочтений и инфраструктуры проекта. Главное — правильно управлять версиями и устанавливать только необходимые модули, чтобы сохранять проект лёгким, быстрым и полностью доступным.