Душный Вуй
743 subscribers
153 photos
5 videos
4 files
353 links
Немного душные, но ламповые заметки о Vue.js
#vuejs #vue #nuxt #vuex #pinia #вью #vapor
Download Telegram
Интересная дискуссия по теме "Pinia сторы против глобальных рефов" прошла на Reddit-e.

Плюсы composable сторов на глобальных рефах заявлены как:
1. Простота
2. Нативность по отношению к фреймворку
3. Отсутствие зависимостей означает отсутствие будущей ситуации "RIP Vuex" с переписыванием 50% кодовой базы проекта
4. API Composition выглядит очень зрелым и стабильным и вряд ли сильно изменится в ближайшем будущем (по сравнению с переходом Vue 2 -> Vue 3).
5. Позволяет использовать всю мощь Reactivity API вместо жесткой Reactive обертки для переменных у Pinia. Разница в производительности может быть огромной.

Выводы:

1. Большинство согласилось, что если не нужна поддержка SSR и интеграция с Devtools, то работа с Reactivity API напрямую и инкапсуляция реактивного состояния и бизнес логики в composable функции вполне возможна. Для многих это лучше использования Pinia.
2. Работа с Reactivity API позволяет делать многое, что не позволяет Pinia - например, делать сторы на TypeScript классах, как описано в предыдущем сообщении.
3. Был предложен лайфхак - во время разработки импортировать реактивные данные из composable сторов в Pinia, и тогда возможно использование Devtools. При билде для продакшна Pinia уже нет.
4. Единственный аргумент в пользу Pinia - унификация работы со стором в команде.
Команда Oxc создаёт убийц 🔒

Ребята пишут JS тулзы на Rust'е, засчёт этого получают огромный буст к производительности и готовят его модно-молодёжно

Что у них уже есть сейчас (пока всё равно сыровато, но потенциал большой)?
— OxLinter — в 50~100 раз быстрее чем ESlint
— OxResolver — в 28 раз быстрее чем enhanced-resolve
— OxParcer — в 2 раза быстрее чем SWC

Отзыв Evan You (создатель Vue.js) об OxLinter:
Запустил oxlint на кодовой базе Vue 3, ~200 правил + ~590 файлов завершены за 50 мс 🤯 (30 мс повторного запуска).

Производительность просто сумасшедшая


Официальный сайт OXC
Please open Telegram to view this post
VIEW IN TELEGRAM
​​🤔Vue state management: Pinia stores или composables с глобальными рефами?

В этой статье автор расскажет зачем использовать Pinia вместо глобальных ref's.

Читать...
Youtube каналы с контентом по Vue

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

John Komarnicki
Lachla Miller
LearnVue
Anthony Fu
VueConf Toronto
VueSchool
VueMastery

#video
Forwarded from Nuxt.js | Vue SSR News (Андрей)
Простите, бога ради (всё-таки Рождество у католиков), но релизный день продолжается.
Nuxt 3.9 тоже вышел

👩‍💻 Vite 5;
👩‍💻Поддержка Vue 3.4;
🕹️Экспериментальная поддержка интерактивных компонентов внутри серверных;
🍿Несколько полезных фич, вроде хука callOnce, работы с define от Vite для оптимизаций кода на сервера и управления индикатором загрузки через новый композабл useLoadingIndicator.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vue-FAQ
Forwarded from Black_Yuzia
Там https://t.me/vue_updates/370
vue 3.4.0 релизнулся.

Идите читайте changelog 👀
Чуть позже сделаю удобнее 🤔
Forwarded from Vue-FAQ
Vue DevTools ждёт обновление

Новая версия будет включать в себя несколько модулей от Anthony Fu из Nuxt DevTools. Пока планируется выпустить её отдельно от текущих DevTools и проверить стабильность. Сейчас она доступна как Vite плагин и Electron приложение. Как Chrome расширение приложение еще не готово.

#antfu #devtools
Forwarded from Душный Вуй
Генерируем компоненты вуюшные нейросеткой

https://www.vue0.dev/
Forwarded from Vue-FAQ
На просторах Рунета обнаружился еще один сайт, посвященный бесплатному обучению программированию на Vue:

https://vib-online.ru/

Автор выкладывает материал в виде глав учебника
К сайту прилагается Telegram канал: "Fronend для взрослых"

#learning #vib
Forwarded from Душный Вуй
Интересный способ как отследить изменения в слоте

<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount } from "vue";

const slotElement = ref(null);
const observer = ref(null);
const update = () => {
console.log("UPDATE");
};

onMounted(() => {
observer.value = new MutationObserver(update);
observer.value.observe(slotElement.value,
{
childList: true, subtree: true
});
});

onBeforeUnmount(() => {
if (observer.value) {
observer.value.disconnect();
}
});
</script>

<template>
<div ref="slotElement">
<slot />
</div>
</template>
Forwarded from Душный Вуй
Кстати Вуй решил серьёзно заняться переводами доки на другие языки, даже аккунт в твиттере создали под это дело
Forwarded from Vue-FAQ
На сайте `Vue FAQ` появился новый раздел - Arty-Crafty

Там будет создаваться онлайн магазин на Vue 3 с описанием того, как это делается. Своего рода туториал. Еще один open source проект.
Подробнее - на вводной странице.
Forwarded from Душный Вуй