Понимает базовую сложность O(n) и O(n²) при работе с массивами и списками во Vue-компонентах. Умеет оценивать влияние вложенных циклов на производительность рендеринга и computed-свойств в Composition API.
Роли · Frontend Developer (Vue) · Junior
Что должен уметь Junior }
25 ключевых навыков, всего 55. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Frontend Development, Безопасность.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 6
Использует async/await в lifecycle-хуках Vue 3 и Composition API. Понимает работу Suspense для асинхронных компонентов, обрабатывает Promise в composables с корректной обработкой ошибок через onErrorCaptured.
Следует правилам ESLint с eslint-plugin-vue и Prettier для единообразного кода. Применяет рекомендации Vue Style Guide — именование компонентов, порядок опций, использование script setup с defineProps и defineEmits.
Применяет базовые паттерны Vue 3 — props/emit для связи компонентов, provide/inject для dependency injection. Использует Composition API для извлечения повторяющейся логики в composable-функции.
Работает с массивами и объектами в reactive() и ref() Vue 3. Понимает ограничения реактивности при мутации вложенных структур, корректно использует shallowRef и shallowReactive для плоских данных.
Использует TypeScript с Vue 3 — типизация props через defineProps<T>(), emit через defineEmits, базовая типизация ref() и reactive(). Понимает автовывод типов в script setup и шаблонах через Volar.
Frontend Development · 18
Понимает концепцию visual regression тестирования для Vue-компонентов. Настраивает Storybook для Vue 3 с Histoire, создаёт stories для UI-компонентов как базу для визуальных снапшотов.
Применяет базовые принципы a11y во Vue-компонентах — семантический HTML, ARIA-атрибуты, alt-тексты. Использует eslint-plugin-vuejs-accessibility для автоматической проверки доступности в шаблонах Vue SFC.
Пишет базовые тесты Vue-компонентов через Vitest и Vue Test Utils — mount, проверка рендеринга, взаимодействие с props. Тестирует emit-события и слоты, понимает разницу между mount() и shallowMount().
Понимает базовые принципы бандлинга Vite — entry points, chunks, tree shaking. Анализирует размер бандла через vite-bundle-visualizer, применяет динамические import() для ленивой загрузки роутов Vue Router.
Использует готовые компоненты Vue дизайн-систем — Vuetify, PrimeVue, Headless UI. Следует документации при кастомизации, понимает слоты и props для адаптации компонентов под требования проекта.
Применяет scoped-стили и CSS-переменные во Vue SFC. Использует Flexbox и Grid для макетов Vue-компонентов, понимает каскадность стилей и специфичность в контексте scoped и deep-селекторов Vue.
Понимает метрики Core Web Vitals — LCP, FID, CLS и их влияние на UX. Измеряет показатели Vue-приложения через Lighthouse и Chrome DevTools, применяет базовые оптимизации — lazy loading изображений, font-display.
Использует CSS-in-JS на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Использует useFetch и useAsyncData в Nuxt 3 для загрузки данных. Понимает разницу между серверной и клиентской загрузкой, обрабатывает loading и error состояния в Vue-компонентах через реактивные ref.
Использует Nuxt на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Понимает основы PWA и интегрирует их в Vue-приложения. Использует @vue/cli-plugin-pwa или vite-plugin-pwa для генерации service worker. Настраивает стратегии кэширования и офлайн-поддержку, следуя паттернам экосистемы Vue.
Понимает различия между SSR, SSG и CSR в контексте Nuxt 3. Настраивает базовый Nuxt-проект с выбранной стратегией рендеринга, использует routeRules для гибридного рендеринга отдельных страниц.
Использует Pinia для управления состоянием Vue-приложения — определение stores через defineStore, реактивные state, getters, actions. Понимает когда использовать локальный state компонента vs Pinia-стор.
Применяет базовые utility-классы Tailwind CSS во Vue-компонентах — отступы, цвета, типографика, flexbox. Использует директивы @apply в scoped-стилях Vue SFC, понимает конфигурацию tailwind.config через Vite.
Использует Vite для разработки Vue-проекта — HMR, dev server, базовая конфигурация vite.config.ts. Понимает разницу между dev и production режимами, настраивает aliases и environment variables.
Использует Vue Core на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Использует базовые Web API во Vue-компонентах — Fetch, localStorage, IntersectionObserver. Интегрирует браузерные API через composables VueUse — useLocalStorage, useIntersectionObserver, useMediaQuery.
Понимает Web Components и поддержку custom elements в Vue. Оборачивает Vue-компоненты как веб-компоненты через defineCustomElement. Обрабатывает привязку атрибутов/свойств и коммуникацию событий.
Безопасность · 1
Понимает базовые уязвимости веб-приложений — XSS, CSRF и их предотвращение во Vue. Использует встроенную защиту Vue 3 от XSS через автоматическое экранирование в шаблонах, избегает v-html с пользовательскими данными.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
55 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Микрофронтенды: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Визуальное регрессионное тестирование: Осведомлённость → Применение
- Доступность (Accessibility): Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Компонентное тестирование: Осведомлённость → Применение
- Оптимизация бандла: Осведомлённость → Применение
- Паттерны проектирования: Осведомлённость → Применение
- Разработка дизайн-систем: Осведомлённость → Применение
} в открытой матрице компетенций: 55 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.