Знаешь, как Vue обновляет DOM?
Vue выполняет обновления DOM асинхронно. Когда ты меняешь реактивные данные, Vue не сразу трогает DOM.
Вместо этого:
1️⃣ Группирует несколько изменений данных в один апдейт
2️⃣ Кладёт эти апдейты в асинхронную очередь
3️⃣ Обрабатывает очередь на следующем «тике» event loop
Такое батчирование предотвращает лишние операции с DOM и повышает производительность.
👉 Гайды по JavaScript | дать буст
Vue выполняет обновления DOM асинхронно. Когда ты меняешь реактивные данные, Vue не сразу трогает DOM.
Вместо этого:
Такое батчирование предотвращает лишние операции с DOM и повышает производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Options API vs Composition API
✅ Options API — отлично подходит для небольших проектов или команд, которым важна быстрая настройка и понятная, структурированная организация кода.
✅ Composition API — лучше всего работает в крупных и сложных приложениях, где критична модульность, переиспользуемая логика и масштабируемость в долгосрочной перспективе.
✅ Смешанное использование — можно спокойно совмещать оба подхода в одном проекте, особенно если ты в процессе миграции или добавляешь новые фичи, где гибкость Composition API будет в плюс.
А ты какой подход используешь в своих проектах?
👉 Гайды по JavaScript | дать буст
А ты какой подход используешь в своих проектах?
Please open Telegram to view this post
VIEW IN TELEGRAM
Cтранная штука во vuejs о которой стрёмно рассказывать
Я подгружаю ТОННЫ данных при первом запуске приложения. Я одержим тем, чтобы UI реагировал мгновенно, и предпочту загрузить 1000 записей на старте, чем заставлять пользователя ждать.
Для этого использую composable
👉 Гайды по JavaScript | дать буст
Я подгружаю ТОННЫ данных при первом запуске приложения. Я одержим тем, чтобы UI реагировал мгновенно, и предпочту загрузить 1000 записей на старте, чем заставлять пользователя ждать.
Для этого использую composable
useCachedData
Please open Telegram to view this post
VIEW IN TELEGRAM
Реализация real-time функциональности во Vue
Взаимодействие в реальном времени становится всё более важным для веб-приложений. Это повышает вовлечённость пользователей и обеспечивает мгновенную обратную связь. Вот несколько подходов, которые стоит рассмотреть:
1️⃣ Обновления в реальном времени с Supabase
Используйте возможности Supabase для real-time синхронизации данных между всеми клиентами.
https://supabase.com/docs/guides/realtime
2️⃣ WebSocket и Server-Sent Events (SSE)
Эти технологии позволяют реализовать комментарии в реальном времени, уведомления и другие интерактивные компоненты.
👉 Гайды по JavaScript | дать буст
Взаимодействие в реальном времени становится всё более важным для веб-приложений. Это повышает вовлечённость пользователей и обеспечивает мгновенную обратную связь. Вот несколько подходов, которые стоит рассмотреть:
Используйте возможности Supabase для real-time синхронизации данных между всеми клиентами.
https://supabase.com/docs/guides/realtime
Эти технологии позволяют реализовать комментарии в реальном времени, уведомления и другие интерактивные компоненты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Знаешь, когда стоит использовать Vue.nextTick?
nextTick нужен в следующих случаях:
✅ Когда нужно обратиться к обновлённым DOM-элементам сразу после изменения данных
✅ Когда ты выполняешь операции, зависящие от нового состояния DOM
✅ Когда нужно измерить размеры элемента после обновления (например, clientWidth, clientHeight)
✅ Когда используешь сторонние библиотеки, которые напрямую работают с DOM (например, Chart.js)
👉 Гайды по JavaScript | дать буст
nextTick нужен в следующих случаях:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Если ты хочешь собрать надёжное веб-приложение, то традиционно тебе пришлось бы заморачиваться с кучей инфраструктуры.
Но с serverless-архитектурой можно просто сосредоточиться на коде приложения.
В этом гайде POnukwili объясняет, как работает serverless, и показывает на практике, как опубликовать Docker-образ на Node.js в AWS ECR и задеплоить контейнер в AWS Lambda.
https://freecodecamp.org/news/serverless-architecture-with-aws-lambda/
👉 Гайды по JavaScript | дать буст
Но с serverless-архитектурой можно просто сосредоточиться на коде приложения.
В этом гайде POnukwili объясняет, как работает serverless, и показывает на практике, как опубликовать Docker-образ на Node.js в AWS ECR и задеплоить контейнер в AWS Lambda.
https://freecodecamp.org/news/serverless-architecture-with-aws-lambda/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как использовать паттерн "разветвлённого компонента"
Выноси сложную условную отрисовку в отдельные компоненты.
Вместо множества
Такой подход делает код читаемее и проще в поддержке со временем.
👉 Гайды по JavaScript | дать буст
Выноси сложную условную отрисовку в отдельные компоненты.
Вместо множества
v-if
внутри одного компонента — создай отдельный компонент для каждого состояния.Такой подход делает код читаемее и проще в поддержке со временем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет дня:
В
👉 Гайды по JavaScript | дать буст
В
@nuxt_js
есть множество способов задать текущий layoutPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
This media is not supported in your browser
VIEW IN TELEGRAM
"Как можно сократить префетчинг (чтобы оптимизировать расходы на хостинг),
не сильно теряя в скорости навигации в Next?"
Попробуй префетчинг по ховеру (prefetching on hover)
👉 Гайды по JavaScript | дать буст
не сильно теряя в скорости навигации в Next?"
Попробуй префетчинг по ховеру (prefetching on hover)
Please open Telegram to view this post
VIEW IN TELEGRAM
Что вы знаете о паттерне проектирования «Slots и Template Props»?
Если у вас есть пропс, который напрямую передаётся в шаблон, это хороший знак, что вместо него стоит использовать слот. Почему? Они выполняют схожую функцию, но слот даёт больше гибкости.
👉 Гайды по JavaScript | дать буст
Если у вас есть пропс, который напрямую передаётся в шаблон, это хороший знак, что вместо него стоит использовать слот. Почему? Они выполняют схожую функцию, но слот даёт больше гибкости.
Please open Telegram to view this post
VIEW IN TELEGRAM
Поговорим о фрагментации в Options API и связности в Composition API
✅ Фрагментация в Options API
По мере роста компонента Vue.js по размеру или сложности, разработчики сталкиваются с тем, что логика расползается по разным секциям.
Например, при обновлении нескольких реактивных состояний или связанных вычислений, разрозненная структура Options API затрудняет поддержку читаемости и целостности кода.
✅ Связность в Composition API
Composition API побуждает инкапсулировать связанную логику в едином, цельном виде.
С помощью composition-функций можно группировать данные и методы, которые взаимодействуют друг с другом.
Это улучшает читаемость и упрощает ментальную модель взаимодействия разных частей компонента.
👉 Гайды по JavaScript | дать буст
По мере роста компонента Vue.js по размеру или сложности, разработчики сталкиваются с тем, что логика расползается по разным секциям.
Например, при обновлении нескольких реактивных состояний или связанных вычислений, разрозненная структура Options API затрудняет поддержку читаемости и целостности кода.
Composition API побуждает инкапсулировать связанную логику в едином, цельном виде.
С помощью composition-функций можно группировать данные и методы, которые взаимодействуют друг с другом.
Это улучшает читаемость и упрощает ментальную модель взаимодействия разных частей компонента.
Please open Telegram to view this post
VIEW IN TELEGRAM
Composition API: Эффективная структура
Composition API предлагает упрощённый подход к архитектуре компонентов, акцентируя внимание на логической группировке функциональности и детализированных импортах.
Такая структура не только улучшает реактивность, но и минимизирует использование памяти за счёт устранения накладных расходов на прокси экземпляра. Код, написанный с использованием Composition API, позволяет доступ к переменным в области видимости, обходя прокси и обеспечивая прямой, оптимизированный доступ к реактивным свойствам.
Этот подход с инлайновыми, компилируемыми функциями приводит к меньшим и более эффективным бандлам и улучшает минификацию, поскольку имена переменных можно безопасно укорачивать по всему коду.
На изображении вы можете увидеть пример Tree-shaking.
👉 Гайды по JavaScript | дать буст
Composition API предлагает упрощённый подход к архитектуре компонентов, акцентируя внимание на логической группировке функциональности и детализированных импортах.
Такая структура не только улучшает реактивность, но и минимизирует использование памяти за счёт устранения накладных расходов на прокси экземпляра. Код, написанный с использованием Composition API, позволяет доступ к переменным в области видимости, обходя прокси и обеспечивая прямой, оптимизированный доступ к реактивным свойствам.
Этот подход с инлайновыми, компилируемыми функциями приводит к меньшим и более эффективным бандлам и улучшает минификацию, поскольку имена переменных можно безопасно укорачивать по всему коду.
На изображении вы можете увидеть пример Tree-shaking.
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по TypeScript: Модификатор public в конструкторах = немедленное объявление свойства
Посмотрите на разницу в действии.
👉 Гайды по JavaScript | дать буст
Посмотрите на разницу в действии.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
С nuxt_js компоненты обычно уничтожаются и пересоздаются при переходе между страницами, из-за чего их состояние сбрасывается. Установив свойство keepalive у компонента NuxtPage, Nuxt обернёт ваши страницы в Vue-компонент <KeepAlive>, сохраняя их состояние при навигации.
👉 Гайды по JavaScript | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Фишка в TypeScript: оператор satisfies предотвращает "тихие" ошибки.
Он позволяет ловить опечатки уже на этапе компиляции.
👉 Гайды по JavaScript | дать буст
Он позволяет ловить опечатки уже на этапе компиляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3