Ответ
Мой основной стек — это React и TypeScript. За последние три года я участвовал в разработке нескольких крупных SPA-приложений.
Ключевые технологии и опыт:
- React + TypeScript: Создание переиспользуемых компонентов с использованием хуков (useState, useEffect, useContext, кастомные). Строгая типизация для повышения надежности кода.
- Состояние: Работал с Redux Toolkit (с Thunk/Saga для side effects) и Context API для управления состоянием на разных уровнях приложения.
- Стилизация: Использовал CSS-модули, Styled Components и Tailwind CSS для построения адаптивных и доступных интерфейсов.
- Инфраструктура: Настройка сборки с помощью Webpack/Vite, написание unit-тестов на Jest + React Testing Library, интеграция с E2E-фреймворком Cypress.
Пример компонента на React/TS:
import React, { useState } from 'react';
interface ButtonProps {
label: string;
onClick: () => void;
}
export const PrimaryButton: React.FC<ButtonProps> = ({ label, onClick }) => {
const [isLoading, setIsLoading] = useState(false);
const handleClick = async () => {
setIsLoading(true);
await onClick();
setIsLoading(false);
};
return (
<button
onClick={handleClick}
disabled={isLoading}
className="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50"
>
{isLoading ? 'Загрузка...' : label}
</button>
);
};
Также имею опыт оптимизации производительности (React.memo, useMemo, useCallback, lazy loading) и работы с современными браузерными API.