Почему оптимизация приложений Vue для производительности имеет значение
В современном веб-ландшафте производительность - это не просто приятная мелочь, она необходима для:
✅ Улучшения пользовательского опыта и вовлеченности
✅ Повышения конверсии и улучшения бизнес-показателей
✅ Повышение SEO-рейтинга и видимости
✅ Сокращения расходов на сервер и использование ресурсов
👉 Гайды по JavaScript | дать буст
В современном веб-ландшафте производительность - это не просто приятная мелочь, она необходима для:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Прощай, 💔
В Node теперь можно читать
С помощью метода:
👉 Гайды по JavaScript | дать буст
dotenv
В Node теперь можно читать
.env
файл без установки каких-либо зависимостей.С помощью метода:
process.loadEnvFile()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Как я управлял аутентифицированными API-клиентами с безопасностью типа с помощью Hono.js
👉 Гайды по JavaScript | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Что ты знаешь о паттерне проектирования Form Component?
И мы можем применить похожий подход к целым формам.
Такая схема учитывает, как пользователи взаимодействуют с формой:
они ожидают, что данные будут "зафиксированы" только после нажатия кнопки Submit.
Кроме того, этот подход отлично работает с нативной валидацией:
событие
👉 Гайды по JavaScript | дать буст
v-model
на нативных полях ввода — это крутоИ мы можем применить похожий подход к целым формам.
Такая схема учитывает, как пользователи взаимодействуют с формой:
они ожидают, что данные будут "зафиксированы" только после нажатия кнопки Submit.
Кроме того, этот подход отлично работает с нативной валидацией:
событие
submit
не срабатывает, пока встроенная проверка браузера не пройдена.Please open Telegram to view this post
VIEW IN TELEGRAM
Смотри, как просто защитить маршруты дэшборда.
Максимально чисто, по TanStack'овски:
никакой возни с редиректами на новые URL,
никаких акробатик в middleware.ts.
Кода минимум. Всё читаемо.
👉 Гайды по JavaScript | дать буст
Максимально чисто, по TanStack'овски:
никакой возни с редиректами на новые URL,
никаких акробатик в middleware.ts.
Кода минимум. Всё читаемо.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Понимание предварительной загрузки компонентов во Vue
В типичном приложении на Vue.js компоненты подгружаются по мере необходимости — это называется ленивой загрузкой (lazy loading) или разделением кода (code splitting). Такой подход уменьшает размер начального бандла, но может вызывать небольшие задержки при первом обращении к компоненту.
Предварительная загрузка компонентов решает эту проблему, инициируя загрузку заранее — как правило, при проявлении пользователем намерения взаимодействовать с компонентом (например, при наведении на кнопку).
Типовые сценарии использования предварительной загрузки компонентов во Vue:
✔️ Модальные окна и попапы
✔️ Формы с пошаговым интерфейсом (wizard'ы)
✔️ Компоненты для визуализации данных
✔️ Редакторы с расширенным UI (например, rich text editors)
✔️ Любые тяжёлые или не отображающиеся сразу компоненты
👉 Гайды по JavaScript | дать буст
В типичном приложении на Vue.js компоненты подгружаются по мере необходимости — это называется ленивой загрузкой (lazy loading) или разделением кода (code splitting). Такой подход уменьшает размер начального бандла, но может вызывать небольшие задержки при первом обращении к компоненту.
Предварительная загрузка компонентов решает эту проблему, инициируя загрузку заранее — как правило, при проявлении пользователем намерения взаимодействовать с компонентом (например, при наведении на кнопку).
Типовые сценарии использования предварительной загрузки компонентов во Vue:
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Эффектная библиотека JavaScript для создания слайдеров с анимацией и эффектом параллакса.
>
👉 Гайды по JavaScript | дать буст
>
pnpm i smooothy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Как работает система предзагрузки (Vue + Vite) 👀
🔸 Определение компонента:
Мы используем
🔸 Импорт-функции:
Мы отдельно определяем функции импорта (loadComponent и loadRoute), которые возвращают динамические импорты. Поскольку в Vite нельзя использовать "магические" комментарии Webpack, эти функции и выступают в роли механизма предзагрузки.
🔸 Триггер-события:
Предзагрузка реализуется через событие
🔸 Условный рендеринг:
Сам компонент отрисовывается только при необходимости (это управляется, например, через
👉 Гайды по JavaScript | дать буст
Мы используем
defineAsyncComponent
для создания компонента, который будет загружаться асинхронно. Это основа для разделения кода (code splitting) в Vue.Мы отдельно определяем функции импорта (loadComponent и loadRoute), которые возвращают динамические импорты. Поскольку в Vite нельзя использовать "магические" комментарии Webpack, эти функции и выступают в роли механизма предзагрузки.
Предзагрузка реализуется через событие
@mouseenter
. Когда пользователь наводит курсор на элемент, вызывается соответствующая функция импорта, и начинается загрузка кода.Сам компонент отрисовывается только при необходимости (это управляется, например, через
ref show)
, но благодаря предзагрузке код уже находится в памяти.Please open Telegram to view this post
VIEW IN TELEGRAM
Nuxt 4.0 официально вышел! Включает в себя ряд обновлений функций и небольшой список критичных изменений, о которых стоит знать.
Хотите подробный разбор с примерами кода по самым важным изменениям? Смотрите полный курс:
https://vueschool.io/courses/what-s-new-in-nuxt-4
Или быстрое видеообзор здесь:
https://youtu.be/wx5_FVjbC9c
👉 Гайды по JavaScript | дать буст
Хотите подробный разбор с примерами кода по самым важным изменениям? Смотрите полный курс:
https://vueschool.io/courses/what-s-new-in-nuxt-4
Или быстрое видеообзор здесь:
https://youtu.be/wx5_FVjbC9c
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Лучшая альтернатива
Библиотека утилит для JavaScript
✓ Без внешних зависимостей
✓ debounce, pick, chunk, cloneDeep, countBy...
✓ Оптимизирована для Node 18+ и современных браузеров
👉 Гайды по JavaScript | дать буст
lodash
Библиотека утилит для JavaScript
✓ Без внешних зависимостей
✓ debounce, pick, chunk, cloneDeep, countBy...
✓ Оптимизирована для Node 18+ и современных браузеров
pnpm install es-toolkit
import { debounce, pick, chunk } from 'es-toolkit'
// 1. pick — выбирает конкретные свойства из объекта
const user = { name: 'Midu', email: 'midu@gmail.com', edad: 40 }
const profile = pick(user, ['name'])
console.log(profile) // { name: 'Midu' }
// 2. chunk — разбивает массив на группы
const nums = [1, 2, 3, 4, 5, 6, 7]
console.log(chunk(nums, 3))
// Результат: [[1, 2, 3], [4, 5, 6], [7]]
// 3. debounce — откладывает выполнение до завершения ввода
const debouncedSearch = debounce(query => {
console.log('Поиск:', query)
}, 500) // задержка 0.5 с
const searchInput = document.getElementById('buscador')
searchInput.addEventListener('input', e => {
debouncedSearch(e.target.value)
})
Please open Telegram to view this post
VIEW IN TELEGRAM
Проверьте экземпляр FetchError в Nuxt для безопасной обработки ошибок в запросах на выборку
👉 Гайды по JavaScript | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Все еще пишете JavaScript сложным способом?
Вот решение, которое вы будете использовать всегда
👉 Гайды по JavaScript | дать буст
Вот решение, которое вы будете использовать всегда
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Совет по Javascript
Знаете ли вы об этом более простом способе получения/установки параметров запроса URL?
👉 Гайды по JavaScript | дать буст
Знаете ли вы об этом более простом способе получения/установки параметров запроса URL?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
5 БЕСПЛАТНЫХ инструментов для веб-разработчиков
http://warp.dev - Альтернатива Claude Code
http://sevalla.com - Full-stack хостинг и бесплатный статический сайт
http://usehooks.com - React hooks с примерами
http://ray.so - Создание изображений из фрагментов кода
http://sarthology.github.io/Animatopy - Анимационные сниппеты CSS
👉 Гайды по JavaScript | дать буст
http://warp.dev - Альтернатива Claude Code
http://sevalla.com - Full-stack хостинг и бесплатный статический сайт
http://usehooks.com - React hooks с примерами
http://ray.so - Создание изображений из фрагментов кода
http://sarthology.github.io/Animatopy - Анимационные сниппеты CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
Node.js v22.18.0 вышел
По умолчанию включена очистка типов
Теперь можно выполнять TypeScript-файлы без дополнительной настройки
Фича экспериментальная. Отключается флагом
👉 Гайды по JavaScript | дать буст
По умолчанию включена очистка типов
Теперь можно выполнять TypeScript-файлы без дополнительной настройки
$ echo 'const foo: string = "World"; console.log(`Hello ${foo}!`);' > file.ts
$ node file.ts
Hello World!
Фича экспериментальная. Отключается флагом
--no-experimental-strip-types
Please open Telegram to view this post
VIEW IN TELEGRAM
Eloquent JavaScript Марейна Хавербеке — отличный (и бесплатный!) ресурс как для начинающих, так и для опытных разработчиков:
понятные объяснения, практические проекты и даже отдельная глава, посвящённая асинхронному программированию.
Ссылка: https://eloquentjavascript.net
👉 Гайды по JavaScript | дать буст
понятные объяснения, практические проекты и даже отдельная глава, посвящённая асинхронному программированию.
Ссылка: https://eloquentjavascript.net
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Трюк JavaScript: Используйте toSorted() для чистой, неизменяемой сортировки
👉 Гайды по JavaScript | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM