Душный Вуй
744 subscribers
151 photos
5 videos
4 files
351 links
Немного душные, но ламповые заметки о Vue.js
#vuejs #vue #nuxt #vuex #pinia #вью #vapor
Download Telegram
Интересная аналогия 💚

🛻 Nuxt (SSR) — фуд-трак: открываешь сайт — и «бургер» контента уже в руках.
🏠 Vue SPA — домашняя кухня: сначала тянем ингредиенты (JS), потом готовим прямо в браузере.

Nuxt даёт мгновенный первый экран и любовь поисковиков, SPA удобнее для внутренних кабинетов, где SEO не важно. Выбирайте, что вкуснее вашему проекту!
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥10👍43🤔3
Forwarded from Nuxt.js | Vue SSR News (Андрей)
Стоило выйти за хлебом на 4 месяца, и тут такое...

Вышел Nuxt 3.17, несмотря на все сложности

‼️ useAsyncData и useFetch теперь умнее: несколько вызовов с одним ключом будут использовать одну и ту же реактивную ссылку. Плюс поддержка реактивных ключей — если что-то поменялось, данные сами перезагрузятся без лишнего шума.

🐊 Новый <NuxtTime> — Теперь можно рендерить дату и время без ошибок гидрации (Раньше тоже было можно, просто теперь отдельный компонент завезли).

👀 Кстати о компонентах — Переработали NuxtErrorBoundary, теперь это SFC (ну ладно), и теперь помимо error в слот с ошибкой передаётся ещё и функция clearError (а вот это уже ничего себе)

🐸 И ещё немного о компонентах. Добавили пропс trailing-slash прямо в <NuxtLink>, чтобы аккуратно управлять тем, будут ли слэши в ваших урлах.

✏️ Доку вынесли в отдельный npm-пакет — @nuxt/docs. Ребята пилят свой mcp-сервер, так что это скорее для них, чем для нас.

🍪 Для разработчиков модулей тоже есть улучшения — добавлен флаг experimental.enforceModuleCompatibility. Модули теперь проверяются на совместимость с v3 (v4 держим в уме) заранее. И хук addComponentExports, чтобы добавить именованным компонентам в модуле возможность автоимпорта.

🔥 Куда же без перформанса? Перешли на tinyglobby — меньше зависимостей (2 vs 23), быстрее сборка. Зацените https://e18e.dev/, если хотите у себя тоже выкинуть какие-то тяжёлые зависимости (из проекта). Еще почистили список папок, чтобы ускорить тайпчекинг.

Полный пост, как всегда, в блоге
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51👍1
Ноооооооовости
Forwarded from Vue-FAQ
В GitLab-e уже тестируют rolldown-vite

Скорость сборки примерно в 5 раз быстрей, и значительно меньше потребление памяти

#gitlab #rolldown #vite
👍11🔥2🥱1
Шо там по новостям?
Forwarded from MSK VUE.JS News
Всем привет 🙂
Это мы идем с крутыми новостями🤪

Алярм: мы открываем регистрацию на новый митап!

📆 29 мая 2024, 19:00

📍 Мск, Крылатская 15, Офис Lamoda

👉 РЕГИСТРАЦИЯ👈

В 13-ый раз команда сообщества MskVue.js соберет единомышленников в офисе Lamoda!

Вас ждут 3 доклада, розыгрыш мерча за лучший вопрос спикеру и просто тонна общения с крутыми разрабами 🙂

Совсем скоро мы представим наших спикеров, поэтому не переключайтесь 🙂

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

Передаем привет главному спонсору #13 митапа - Lamoda Tech 💚

Увидимся совсем скоро 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3😭3
MSK VUE.JS News
Всем привет 🙂 Это мы идем с крутыми новостями🤪 Алярм: мы открываем регистрацию на новый митап! 📆 29 мая 2024, 19:00 📍 Мск, Крылатская 15, Офис Lamoda 👉 РЕГИСТРАЦИЯ👈 В 13-ый раз команда сообщества MskVue.js соберет единомышленников в офисе Lamoda! …
Ребята ходите на митапы, митапы это хорошо! Особенно митапы у ребят MSK Vue.js 💚

Я к сожалению пропущу этот митап так как 23 мая улетаю в дали далёкие, грустно это конечно 😭
Please open Telegram to view this post
VIEW IN TELEGRAM
😢3🔥2🤡1
Forwarded from Vueist
С постами туго, так как готовлюсь к митапу ссылка на который выше, скоро там будет уже анонс доклада (по секрету это о работе с композаблами).

Но только вот не у всех есть возможность оказаться в каком-то городе для оффлайн мероприятия (на мероприятии выше трансляция и запись будет). И вот я наткнулся на еще один митап: Vuejs Talks от кор команды Vuestic UI. Митап проходит в онлайн формате на английском, так что это шанс получить общение или даже выступить впервые на английском языке (я себе галочку уже поставил, что планирую это сделать).

Самая классная часть, что проводится митап регулярно фактически каждый месяц. Следующий митап будет 18 июня.
Зарегистрироваться можно здесь
Если же захотели стать спикером

PS, а еще как член ПК Holy.js я бы очень сильно хотел видеть заявки на доклады по Vue экосистеме у нас. Поэтому если у вас есть идеи или желания, то welcome (возможно даже выступление удаленно)

#мероприятия
👍32
Forwarded from Vueist
Невнимательность и реактивность

Недавно в чате человек столкнулся с проблемой, что "меняя нереактивный массив он видел изменения в рендере". В чате сразу начали возникать: мол раз reactive был передан, то это уже реактивный массив. Давайте разбираться

1. Меняется ли исходный объект при передачи в reactive?
Нет. Объект сам не меняется, однако Proxy создаваемое от reactive будет мутировать именно переданный объект. Возможно это очевидно, но:
- во Vue2 редактировался исходный объект. Там каждое поле объекта становилось getter + setter (при этом во всю глубину) и конечно же такой подход имел свои последствия.
- В других фреймворках, например Svelte может быть иное поведение. Там Proxy лишь основывается на начальном объекте и мутации не идут в исходный объект

2. Отслеживает ли Vue мутации в исходном нереактивном объекте?
Нет. Однако, Proxy все-таки основан на оригинальном объекте и если кто-то изменит объект, а потом это значение прочтут реактивно, то, конечно же, будет получено актуальное значение
const a = { hello: 0 }
const aReactive = reactve(a)
const b = ref(2)
const mult = computed(() => aReactive.hello * b.value)
console.log(mult.value) // 0 * 2 = 0
a.hello = 2
console.log(mult.value) // все еще 0, Vue не знает об обновлении
b.value = 1
console.log(mult.value) // 2 * 1 = 2, так как изменилось другое реактивное значение, то Vue пересчитал computed

Кажется очевидным, но в Svelte опять же после создания реактивного значения связь с нереактивным теряется

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

Однако затронем пару еще интересных моментов:

Знает ли Vue, что уже существует Proxy для отслеживания конкретного объекта?
Да. Vue имеет специальные WeakMap-ы со всеми существующими Proxy от реактивности (но доступа к ним прямого нет, он спрятан в исходниках @vue/reactivity)
Проверить это достаточно легко:
const a = { hello: 0 }
const aReactive1 = reactive(a)
const aReactive2 = reactive(a)
console.log(aReactive1 === aReactive2) // true

Это важная часть оптимизация реактивности Vue позволяющая существенно экономить память при работе с объектами, так как на каждый объект не более 1 соответствующего Proxy. Однако у вас нет к этому доступа

Есть ли какие-то данные в Proxy от reactive которых нет в исходном объекте?
Есть, их не существует в объекте, но Proxy особым образом проверяет на доступ к ним. И это ReactiveFlags и хотя у вас есть доступ к этим флагам, все-таки лучше использовать соответсвющие утилити функции от Vue
console.log(aReactive[ReactiveFlags.IS_REACTIVE] === isReactive(aReactive))
// и тд


#learn #reactivity
🔥14👍5
Forwarded from MSK VUE.JS News
Всем привет!
Ииииииии внимание, наш первый спикер 🎙

Невероятная фронтесса - Дарья Сабурова!

О чем будет доклад?
Даша расскажет сама:

С момента выхода Vue 3 прошло уже пять лет, представляете? Казалось бы, только вчера мы погружались с головой в новый подход к реактивности, горячо спорили о полезности CompositionApi и придумывали планы, как мигрировать проект с Vue 2. Но время идет и фреймворк не стоит на месте: постоянно что-то улучшается, добавляются новые возможности, а иногда и наоборот, что-то удаляется, так и не добравшись до широких масс. Так давайте же взглянем на историю развития минорных версий Vue 3: вспомним, как было трудно (а может и нет?) в самом начале и какой длинный путь проделал фреймворк к настоящему времени, посмотрим на акценты, которые были сделаны в каждом из миноров и рассмотрим наиболее интересные фичи, которые мы могли пропустить.


Интересен доклад Даши? Ставь 👍
👍34🔥3🤡2
Forwarded from MSK VUE.JS News
Всем привет!
Самое время анонсировать нашего второго спикера 🎙

Поприветствуйте бурными овациями – легенда Денис Чернов!

О чем будет доклад?
Денис расскажет сам:

Composition API может вскружить голову своими возможностями и во главе угла стоят Композаблы. Что это такое и какими приемами можно подчинить их у себя на проекте, чтобы работа с ними приносила лишь радость? Со всем этим попробуем разобраться и покомпозировать композаблы


Ждешь доклад Дениса? Ставь 🔥
🔥44👍62
Forwarded from Nuxt.js | Vue SSR News (Loveless)
🚀 Вышла первая альфа-версия Nuxt 4!

Изначально Nuxt 4 планировался к выпуску в июне 2024, однако команда пересмотрела подход:

Альфа-версия: июнь 2025 (уже доступна!)
Стабильный релиз: конец июня 2025
Nuxt 5: позже, после готовности Nitro v3

🔥 Ключевые изменения

⚡️ Nitropack v3 nightly
Самое значимое обновление — интеграция с Nitropack v3 nightly, что обещает улучшенную производительность и новые возможности.

🎨 Обновленные UI-шаблоны
Шаблоны пользовательского интерфейса полностью обновлены под брендинг v4.

📦 Масштабные обновления зависимостей
Обновлены до последних версий ключевые зависимости: c12, jiti, unbuild, unimport и множество других.

📋 Что планируется в ближайшие недели
Pull Request'ы для модулей сообщества в nuxt/modules registry
Полный гайд по миграции с Nuxt 3 на Nuxt 4
Только багфиксы для v3 в этом месяце
Обновление документации на nuxt.com с переключением между версиями
Release Candidate планируется на 23 июня

⚠️ Важные моменты для разработчиков

На стадии альфы:
Планируются дополнительные breaking changes
Возможны баги и "трения" в использовании

На стадии беты:
Breaking changes не планируются, но могут быть при необходимости
На стадии RC:
Только исправления багов

🧪 Как попробовать
Команда призывает early adopters (ранних пользователей) тестировать новую версию и сообщать о найденных проблемах в репозиторий Nuxt или используемых модулей.
Следить за прогрессом можно через Nuxt 4 milestone на GitHub.
🔥7👍4
Как бы да, но есть нюанс