Как стать автором
Обновить
17.53

VueJS *

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

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

До и после: оптимизация изображений для Lighthouse и не только

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

Привет, интернет! 

Я Антон Небыков, Frontend TechLead в ИдаПроджект.

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

На первый взгляд, работа с изображениями сводится к простому добавлению элемента img и ссылки на изображение в атрибуте src. Но на практике все намного сложнее :) 

Погнали разбираться!

Читать далее

Yandex индексация для SPA приложений

Время на прочтение2 мин
Количество просмотров2.2K

Год с небольшим назад я проводил здесь испытания, как поисковики индексируют SPA сайты. На тот момент Google справился на отлично, Yandex - не очень

Сейчас Yandex хорошо проиндексировал SPA сайт на Vue 3.

Читать далее

Telescope — web-based log viewer UI

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров2.8K

Всем привет

Хочу поделиться с сообществом своим проектом.

Telescope - это opensource web-приложение для удобной работы с логами, хранящимися в ClickHouse.

Читать далее

Пошаговое руководство для начинающих по разработке SPA на Laravel и Vue.js

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7K

Привет, Хабр. На связи Артем, Laravel-разработчик, и я написал инструкцию для начинающих разработчиков по созданию полноценного локального приложения с бэкендом на Laravel и фронтендом на Vue.js. 

Одностраничные приложения стали стандартом для создания динамичных и быстрых пользовательских интерфейсов. Одним из популярных стеков для разработки SPA является сочетание Laravel и Vue.js.

Пошагово разберу, как настроить среду разработки, создать API на Laravel, реализовать динамический интерфейс с использованием Vue.js и связать эти две части в единое приложение. 

После прочтения статьи вы сможете развернуть свое собственное SPA и использовать его как основу для реализации своих идей по функционалу. Этот пример станет отличной отправной точкой для создания более сложных проектов.

Читать далее

Понимая реактивные системы: Производные, эффекты и оптимизация

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.2K

С этой статьи я начну цикл материалов, посвященных базовым концепциям реактивности, основанных на идеях и примерах, которые подробно изложил автор SolidJS, Райан Карниато (Ryan Carniato), в своем блоге. Наша цель — разобрать фундаментальные принципы, лежащие в основе реактивных систем, и показать их применимость в различных контекстах.

Читать далее

Lissa Health — приложение для хранения личной медицинской информации (v1.2)

Время на прочтение3 мин
Количество просмотров1K

Обновилось приложение для хранения личной медицинской информации "слэш" персональный AI-помощник Lissa Health.

Мы добавили загрузку и распознавание результатов лабораторных анализов в виде изображений, возможность загрузки вложений в документ, экспорт данных пользователя в JSON и кое-что еще.

Подробности ниже.

Читать далее

Vue 3 и jsx — неочевидные нюансы типизации

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

Всем привет.
Статья представляет из себя краткое резюме из моей практики описания Vue компонентов с помощью полноценных jsx шаблонов, то есть, tsx модулей, возвращающих defineComponent.

Как мы все знаем внешний API компонента во Vue разделен, и имеет не только props. Помимо них есть ещё slots и emitters.

основа defineComponent - функция setup. И как вариант всё можно типизировать через хуки defineProps, defineSlots и defineEmits в теле этой функции. Описывать такой способ типизации я не буду - о нём можно почитать и в документации.

Почему я так не делаю? Я просто не хочу захламлять тело setup функции. Мне нравится отделять логику компонента от его внешнего API и декларировать API через свойства defineComponents, отделяя так сказать мух от котлет. И вот тут то как раз и появляются неочевидные моменты, которые я решил немного поанализировав исходники и погуглив.

Типизация свойства props

Читать далее

Webpack, Vite или Rspack: что это за зоопарк или чем собирать микрофронтенды в 2025?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.8K

Привет! Разбираясь с микрофронтендами в монорепозитории для проекте с Vue3 пришёл к выводу, что так много уделяется внимания гибкости в построении архитектуры и бизнес-задачам, что все боятся заниматься улучшением "условий труда" связанных со сборкой приложения! Решил что эта задачка как раз мне подходит и представляю вашему вниманию небольшую статью которая возможно поможет вам сделать выбор или подтолкнет попробовать новые инструменты сборки фронтенда! Для справки - микрофронтенды у нас на Module Federation, Nx для управления монорепозиторием, общаемся мы через GraphQL, тестируем с Jest и конечно куда без TypeScript. Проект активно развивается, и с ростом его масштабов столкнулись с вопросом: какой сборщик лучше всего справится с нашими задачами? Webpack уже давно с нами, но его медлительность заставляет искать альтернативы. Vite обещает молниеносную разработку, а Rspack — производительность без сложной миграции. Давайте разберёмся, что подойдёт именно нам — и, возможно, вам.

Читать далее

Он вам не SSR. Nuxt — больше, чем Server-Side Render фреймворк

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

Привет, Хабр! Я - Frontend Developer в МТС Диджитал. Все чаще и чаще я натыкаюсь на сообщения и комментарии пользователей в различных социальных сетях про Server-Side Rendering.

Обычно эти жалобы о том, кто-то недоволен зависимостью Next.js от Node.js-сервера. Кто-то сталкивается с ограничениями динамического роутинга при статической генерации. Исходя из этого некоторые люди писали в комментариях что-то вроде: "Вы же не ожидали, что SSR-фреймворк решит все проблемы разом?"

Большинство моих коллег с других компаний в принципе не понимают зачем я беру Nuxt почти во все свои проекты и задают вопросы. На первый взгляд это вполне логично. Какой смысл брать SSR фреймворк, если ты выключаешь в нем SSR. На примере Nuxt, SSR можно выключить одним булевым флагом в конфиге:

Читать далее

Как я решил проблему гибкого управления порядком импортов в большом проекте

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1K

Eslint плагин eslint-plugin-import-group

В одном из моих недавних проектов столкнулся с проблемой: в большом приложении, над которым работают десятки разработчиков, необходимо было обеспечить единообразный порядок импортов.

Читать далее

Использование браузерного хранилища для управления состоянием приложения

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров2.5K

Современные web-фреймворки для реализации управления состоянием используют библиотеки, такие, например, как Redux для React или Pinia для Vue. У традиционной реализации управления состоянием есть недостатки. Store в таком варианте является частью скрипта страницы, и его данные при её перезагрузке теряются. Кроме того, если нам в приложении нужно организовать управление отображением контента в нескольких окнах браузера, оказывается, что традиционный Store не может этого обеспечить.

Читать далее

Fusion — php стал ещё ближе к javascript

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.6K

Каждый PHP-разработчик, работая с современными JavaScript-фреймворками, наверняка задумывался о том, как было бы здорово передавать данные напрямую в компоненты без танцев вокруг контроллеров и типов данных. Арон Френсис, видимо, тоже терзал себя этим вопросом, поэтому 4 февраля 2025 года на своём ютуб-канале представил новую веху развития фронтенда на Laravel — Fusion.  В этом статье мы рассмотрим базовые принципы работы библиотеки и основные нюансы работы с ней.

Читать далее

Lissa Health — приложение для хранения личной медицинской информации

Время на прочтение6 мин
Количество просмотров2.2K

Приложение позволяет:

Распознавать и хранить результаты медицинских анализов, МРТ, и других исследований в структурированном виде

Просматривать динамику показателей в виде графических отчетов

Составлять аналитические отчеты с помощью искусственного интеллекта

Делал для себя, потом решил расширить аудиторию. Предлагается к попробовать.

Читать далее

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

Я делаю тестовые лучше тебя! 1/3 (фронтенд)

Время на прочтение6 мин
Количество просмотров4.3K

Я и сам до конца не знаю, является ли заголовок статьи кликбейтом или нет. Разберёмся в комментариях. Только давайте по-честному! Согласен с тезисами — напиши, что статья огонь, поставь лайк и всё такое. Не согласен — аргументируй, а не просто: «бред»! Есть что добавить (идеи, фишечки) — добро пожаловать в комментарии.

Привет, меня зовут Андрей Шпилевский, и в этой статье я расскажу, почему я делаю тестовое лучше большинства, а также дам советы, как проходить этот этап быстро и максимально эффективно. Тема достаточно большая, поэтому будет разбита на 3 части. Это первая и начну ее я, пожалуй, не с советов: ‘Делай так, спина болеть не будет’, а с лирического вступления, которое, на самом деле, важнее, чем какие-либо пункты.

Читать далее

Интеграция Vue.js в Битрикс24: Как разработать сложный фронтенд за два месяца

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

Представьте, что к вам приходит владелец с видео-концептом новой фичи для клиента, функционал которой отдаленно напоминает космический корабль, а у вас всего два месяца на разработку, и один — на тестирование. Если смогли представить, значит эта статья для вас, а если нет — то и для вас тоже, чтобы заранее знать, как выходить из таких ситуаций.

Читать далее

Обзор различных методов работы с реактивным стейтом во Vue

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

В статье рассмотрены различные методы организации обмена данными и реактивным состоянием во Vue.js приложениях, как то:

- Prop drilling
- Provide/Inject
- Composition API
- Pinia
- Event Bus

Читать далее

Полезные советы при разработке с AI IDE агентами

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

Основано на личном опыте при работе с Cursor AI (и другими платформами)

Используйте по возможности системный промпт. Cursor позволяет иметь .cursorrules файл, в котором можно прописать основные установки по проекту. Пример файла.
Напишите свой и попросите AI улучшить его. Автокомплит его плохо видит, но chat и composer - вполне. По крайней мере, CSS дизайн систему проекта и свои компоненты при генерации кода использует четко.

Читать далее

FastAPI и Vue.js 3: телеграм-бот с MiniApp для записи и автоматических уведомлений. Пишем фронтенд

Время на прочтение39 мин
Количество просмотров8.9K

Друзья, приветствую! Наконец-то дошли руки до описания второй части нашего большого проекта по работе с выдуманной клиникой «Здоровье Плюс».

Я напоминаю, что в рамках этой небольшой серии мы создаем телеграм-бота с MiniApp, основная задача которого — дать пользователям возможность записаться к врачу в удобный день и время.

В прошлой части мы полностью закрыли вопрос логики нашего бота. Сегодня мы займемся написанием фронтенда для нашего Telegram MiniApp с использованием современного JS фреймворка Vue.JS 3.

К концу статьи мы реализуем полноценный реактивный фронтенд, который одинаково хорошо будет смотреться, как в формате веб-сайта (мобильная и пк-версия), так и в формате Telegram MiniApp.

Читать далее

Пишем морской бой на VueJS и Python

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров5.2K

Напишем всем известную игру на VueJS, Python и вебсокетах. Можно будет поиграть со случайным соперником и попробовать свои силы с другом.

Читать далее

Omatsuri: бесплатный инструмент с открытым исходным кодом для упрощения фронтенд-разработки

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

С Новым годом, друзья! 

Сегодня мы поговорим об одном из интересных инструментов для разработчиков. Omatsuri — это открытая платформа, состоящая из 12 удобных утилит для повседневных задач разработчика. Сайт omatsuri.app выполнен в минималистичном стиле и предлагает интуитивно понятный интерфейс. Это инструмент, который явно создан «с душой» для тех, кто ценит функциональность и простоту.

Читать далее