Обновить
8.17

VueJS *

Прогрессивный JavaScript-фреймворк

Сначала показывать
Порог рейтинга
Уровень сложности

Как мы снизили время отклика в 15 раз на новом портале ВДНХ через Laravel + Nuxt и масштабируемую архитектуру

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.3K

Привет! Я Алексей Постригайло, старший партнер крупного ИТ-интегратора.

В этой статье я расскажу о технических деталях масштабной работы, которая была проделана перед тем, как новый сайт ВДНХ объединил все проекты выставки на одной платформе.

Читать далее

Provide/Inject в Vue.js недооценены?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.3K

Когда я работал с Vue, мне доводилось использовать provide и injectбуквально пару раз - и то просто чтобы обойти ограничения архитектуры проекта. Однако, столкнувшись с Angular, я увидел, что DI в фронтенде может быть не только костылем, но и вполне себе рабочим паттерном, который позволяет создавать гибкие компоненты с удобным API. Так ли это в случае с Vue?

Читать далее

Clean Architecture во frontend: почему я ушёл от FSD

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели10K

Привет! Хочу поделиться с тобой опытом перехода от Feature-Sliced Design к Clean Architecture во фронтенде. Почему я считаю Clean Architecture более подходящей для сложных приложений, и как она решает проблемы, с которыми ты точно сталкивался.

Если ты используешь FSD и тебе уже больно или до сих пор пишешь всю логику в компонентах React — эта статья точно для тебя.

Читать далее

Как Vite Module Federation ломается при раздельном старте

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.5K

Если у вас есть два приложения на React + Vite — хост и микрофронт (remote) — и при общем старте через одну команду всё магически ок, а при раздельном запуске хост падает с 404 на remoteEntry.js, вы не одиноки. Разбираемся, почему так, и показываю рабочие рецепты.

Читать далее

Спасение от техдолга: как мы мигрировали на Vue 3

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K

Технический долг — вещь, знакомая многим компаниям и программистам. Обычно он копится годами, чтобы потом, подобно сизифову камню, держать в тонусе всех и вся. Под катом — рассказ Альберта Халимова, одного из членов команды «М.Видео – Эльдорадо», о том, как мы справляемся с подобными недугами.

Читать далее

Vue 2 в 2025: какие паттерны стоит забыть, а какие – оставить

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.4K

Vue 2 в 2025 году официально стал legacy, но множество проектов всё ещё работают на нём. Миграция на Vue 3 не всегда возможна сразу, поэтому важно правильно поддерживать и модернизировать старый код.

В этой статье разберём:

Устаревшие паттерны, от которых лучше избавиться.

Проверенные подходы, которые остаются актуальными.

Альтернативы из Vue 3, которые можно адаптировать уже сейчас

Читать далее

Vue: Composables и TS это вам не Mixins и JS. С ними сложнее

Уровень сложностиСложный
Время на прочтение3 мин
Охват и читатели2.4K

Пришел к хитрому паттерну. Делюсь.

Будет полезен тем кому нравиться или приходится работать с Vue.
В подходящей ситуации он сэкономит кучу времени и поможет избежать дублирования кода.

Поехали!

Организация селекторов для тестирования

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.5K

Зачастую обычные веб-приложения не покрывают E2E тестами, однако, когда разговор заходит об административных панелях, формах биллинга и разнообразных конструкторах, то данная потребность быстро возникает.

В этой статье мы рассмотрим, как правильно организовать селекторы для тестирования веб-приложений.

🧪🧪🧪 TEST_ID="Читать далее" 🧪🧪🧪

Нюансы кроссплатформенной разработки на Vue и React

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели847

Этот документ — не просто список, а выжимка боли, шишек и неожиданных открытий, с которыми сталкивается почти каждый фронтендер. Неважно, Vue ты выбрал или React, если твое приложение должно работать в браузере на айфоне пятилетней давности — добро пожаловать в клуб. Здесь будет всё: от странностей с Safari до неожиданных проблем с синтетическими событиями.

Нюансы мобильных браузеров и PWA

iOS Safari не поддерживает Notification API без установки PWA

Проблема: На iOS ты не можешь просто вызвать new Notification(...) — API будет недоступно, пока пользователь не установит сайт как PWA на домашний экран. Так же, в Safari просто не будет доступен класс Notification, браузер его просто не имплиментирует на этапе браузерного окна.

Решение:

- Чтобы проверить можно ли использовать уведомления можно написать следующую проверку:

typeof window !== 'undefined' && 'Notification' in window;

🔗 [MDN — Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API)

🔗 [WebKit — Push Notifications](https://webkit.org/blog/12945/meet-web-push-on-ios/)

Читать далее

БЭМ + Tailwind: прагматичный гибрид для современного фронтенда

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели2.4K

Устали от бесконечных споров о CSS-методологиях? В этой статье я рассказываю, как объединил БЭМ и Tailwind в мощный гибридный подход, который спас мой проект и нервную систему. Узнайте, как избавиться от мучительного нейминга, решить проблему с отступами и ускорить разработку в два раза.

Никакого догматизма — только практический опыт и реальные примеры использования лучших сторон обоих подходов.

Чекнуть габеллу.

Магия ClientOnly: повышаем производительность и безопасность в Nuxt-приложениях

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели974

ClientOnly в Nuxt - это не просто костыль для исправления SSR-ошибок, а многофункциональный инструмент с неожиданными преимуществами. Разбираемся, как этот компонент может ускорить загрузку приложения, улучшить пользовательский опыт и даже создать дополнительный уровень защиты от ботов.

Серьёзно о несерьёзном и с юмором о технологиях — обо всех секретных суперспособностях вашего любимого компонента-невидимки.

...Loading

Vue Teleport: как работает

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели3.5K

Привет, Хабр!

Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999 и appendChild.

Читать далее

Композиционные хуки во Vue 3: коротко

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели2.4K

Привет, Хабр!

В этой статье рассмотрим, что такое композиционные хуки во Vue 3, зачем они нужны и как их использовать.

Читать далее

Ближайшие события

HTML Builder: визуальный конструктор HTML-структур на Vue 3

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.8K

HTML Builder — визуальный конструктор HTML-структур с drag-and-drop интерфейсом для библиотеки @vue-dnd-kit/components!

🔹 HTML Builder позволяет создавать HTML-структуры без написания кода
🔹 Включает рабочую область, палитру компонентов, дерево элементов и панель настроек
🔹 Сейчас это ранняя бета с минимальным функционалом, но уже можно оценить концепцию
Идеально подходит для создания прототипов и визуальных редакторов CMS.

🔗 Демо: https://zizigy.github.io/html-builder/
🔗 GitHub: https://github.com/ZiZIGY/html-builder

Ищу обратную связь по UI/UX и функциональности. Какие фичи хотели бы видеть? Что можно улучшить в интерфейсе? И тд тп.

Читать далее

Представляю @vue-dnd-kit/components: Готовые компоненты для быстрой разработки интерфейсов с перетаскиванием

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.4K

Представляю vue-dnd-kit/components — готовые компоненты для быстрой разработки drag & drop интерфейсов в Vue 3!

📋 Сортируемые таблицы
📊 Канбан-доски
🌳 Древовидные структуры
🧩 Интерактивные дашборды

CLI работает как shadcn/ui — компоненты клонируются в ваш проект, давая полный контроль над кодом. Проект в активной разработке, но уже готов к использованию!

Готовые компоненты: Table, Kanban, Tree, Dashboard.

Статус: бета, API может изменяться. Подходит для прототипов и активной разработки.

Читать далее

Vue 3: Почему ref() — это новая ссылка, а reactive() — обёртка?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.5K

Если вы работаете с Vue 3, вы точно сталкивались с ref() и reactive(). Обе функции из Composition API делают значения реактивными — но делают это по-разному. И хотя документация Vue чётко указывает, что использовать в каком случае, она редко объясняет, почему это важно и что может пойти не так, если использовать не тот инструмент.

Вот ссылки на официальную документацию — на всякий случай:

Читать далее

Почему Feature-Sliced Design (FSD) не спасет ваш проект

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.5K

Каждый разработчик рано или поздно сталкивается с вопросом: как организовать проект так, чтобы он не превратился в хаос? Или как исправить проект, в котором уже царит хаос?

Начинается всё одинаково: мы делаем простое MVP или проект с ограниченным функционалом, не заморачиваемся по поводу архитектуры и организации кода, ведь проект небольшой и несложный, а сделать его нужно уже здесь и сейчас. Но время идёт, и у бизнеса появляются всё новые требования. Какие‑то изначальные идеи полностью отменяются или меняются до неузнаваемости, разрастается команда, дизайн меняется несколько раз, появляется необходимость покрыть проект тестами, а иногда и необходимость вообще сменить стек технологий. И вот вы уже работаете над кодом, в котором становится всё сложнее вносить изменения в существующий функционал. Всё держится на костылях, становится трудно ориентироваться в куче файлов, и кажется, что всё устроено как‑то не так, как должно быть.

В этот момент мы начинаем задаваться вопросом: «а как нужно писать и организовывать код на самом деле?». В поисках ответа мы читаем статьи, смотрим обучающие видео, доклады и неизбежно натыкаемся на Feature‑Sliced Design (FSD).

Читать далее

Ретроспектива Vue 3, композаблы и Svelte. Материалы с митапа MskVue.js #13

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели1.5K

Митап MskVue.js #13 прошел 29 мая в офисе Lamoda. Вместе с сообществом MSK VUE.JS организовали три ярких доклада, разыграли мерч за лучшие вопросы и много общались со спикерами и друг с другом. Делимся материалами со встречи.

Читать далее

Vue. Watch и WatchEffect на практике

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели3.6K

Каждый, кто использует Vue для разработки, так или иначе встречается с необходимостью выполнить какое‑либо побочное действие при изменении значений, и сразу в голове возникает мысль о двух методах‑наблюдателях — Watch и WatchEffect.

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

По ходу статьи также будут приведены некоторые полезные библиотеки Vue, которые часто используются в разработке.

Читать далее

Настройка Workbox Background Sync для совместимости с iOS и Android WebView

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели367

Важность надежной обработки запросов в оффлайн-режиме невозможно переоценить, особенно для приложений, которые должны функционировать и в отсутствии интернет-соединения. Workbox - это мощный инструмент для управления Service Worker в браузерах, он как раз призван решать подобную задачу при помощи соответствующего плагина, но поддержка Background Sync API не универсальна. В этой статье я покажу, как расширить Workbox, чтобы Background Sync корректно работал даже на платформе iOS/Safari.

Читать далее

Вклад авторов