#vue #основы
Хм, а вы используете
В Vue.js 3
Использование
Например, предположим, что у нас есть следующий объект состояния:
Хм, а вы используете
readonly
в Vue? Оказывается многие про него даже не слышали.В Vue.js 3
readonly
- это функция, которая принимает объект и возвращает его неизменяемую версию. Это значит, что свойства объекта могут быть только прочитаны, но не могут быть изменены.Использование
readonly
особенно полезно при работе с состоянием приложения (state), так как предотвращает случайные мутации данных, которые могут привести к неожиданному поведению приложения.Например, предположим, что у нас есть следующий объект состояния:
const state = reactive({Если мы хотим создать копию этого объекта, которую нельзя изменить, мы можем использовать
count: 0,
message: "Hello, World!"
});
readonly
следующим образом:const readonlyState = readonly(state);Теперь мы можем использовать readonlyState вместо state в нашем приложении, чтобы предотвратить несанкционированные изменения состояния.
// это приведет к ошибкеПодробнее в доке
readonlyState.count = 1;
// это работает
console.log(readonlyState.count); // 0
console.log(readonlyState.message); // "Hello, World!"
https://shiny-button.vercel.app/
Никак не относится к Вую, но просто забавная идея кнопки с отражением юзера)
Она ещё и заляпывается если часто по ней кликать 😅
Никак не относится к Вую, но просто забавная идея кнопки с отражением юзера)
Она ещё и заляпывается если часто по ней кликать 😅
✨ Nuxt 3.3.1
🚀 Улучшения производительности
🧑💻 Улучшения DX для разработки локальных модулей
⚗️ Обновление с множеством улучшений Nitro 2.3
♻️ Возможность управления перезагрузкой сервера
💪 Улучшения типизации
🩹 Исправления ошибок
и многое другое!
https://github.com/nuxt/nuxt/releases/tag/v3.3.1
🚀 Улучшения производительности
🧑💻 Улучшения DX для разработки локальных модулей
⚗️ Обновление с множеством улучшений Nitro 2.3
♻️ Возможность управления перезагрузкой сервера
💪 Улучшения типизации
🩹 Исправления ошибок
и многое другое!
https://github.com/nuxt/nuxt/releases/tag/v3.3.1
GitHub
Release v3.3.1 · nuxt/nuxt
3.3.0 is a minor (feature) release with lots of new features to play with. 3.3.1 was a swiftly following release to patch an issue with nuxi on Windows.
👀 Highlights
✨ Local module development DX
...
👀 Highlights
✨ Local module development DX
...
✨ Nuxt 3.3.2
🩹 Большое количество исправления ошибок
💪 Улучшения типизации
📖 Доработка документации
команда Nuxt не только выкатывает новые фичи, но и не забывает фиксить баги!
https://github.com/nuxt/nuxt/releases/tag/v3.3.2
🩹 Большое количество исправления ошибок
💪 Улучшения типизации
📖 Доработка документации
команда Nuxt не только выкатывает новые фичи, но и не забывает фиксить баги!
https://github.com/nuxt/nuxt/releases/tag/v3.3.2
GitHub
Release v3.3.2 · nuxt/nuxt
3.3.2 is a patch release with plenty of bug fixes.
✅ Upgrading
As usual, our recommendation for upgrading is to run:
nuxi upgrade --force
This will refresh your lockfile as well, and ensures that ...
✅ Upgrading
As usual, our recommendation for upgrading is to run:
nuxi upgrade --force
This will refresh your lockfile as well, and ensures that ...
Чёт там потихоньку альфы Vue.js 3.3 выходят, кому интересно гляньте, а кому на эту тему есть, что рассказать рассказывайте в комментах)
https://github.com/vuejs/core/blob/main/CHANGELOG.md
https://github.com/vuejs/core/blob/main/CHANGELOG.md
GitHub
core/CHANGELOG.md at main · vuejs/core
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. - vuejs/core
#vuejs #histoire
Статейка на тему написания сторизов для компонентов Vue.js с помощью аналога Storybook - Histoire + Typescript
https://blog.logrocket.com/writing-interactive-component-stories-histoire-vue-3-typescript/
Статейка на тему написания сторизов для компонентов Vue.js с помощью аналога Storybook - Histoire + Typescript
https://blog.logrocket.com/writing-interactive-component-stories-histoire-vue-3-typescript/
LogRocket Blog
Writing interactive component stories with Histoire in Vue 3 and TypeScript - LogRocket Blog
Learn how Histoire, a Vue-focused Storybook alternative, can help you illustrate your different development patterns and more.
Душный Вуй
#vuejs #histoire Статейка на тему написания сторизов для компонентов Vue.js с помощью аналога Storybook - Histoire + Typescript https://blog.logrocket.com/writing-interactive-component-stories-histoire-vue-3-typescript/
LogRocket Blog
Improve component stories with Histoire - LogRocket Blog
Histoire is a frontend tool that helps developers sandbox their UI components by creating stories, and is a competitor to Storybook.
Chrome 112 начал поддерживать CSS Nesting! Официальный! Который теперь часть спецификации:
https://www.w3.org/TR/css-nesting-1/
https://www.w3.org/TR/css-nesting-1/
.nesting {
color: hotpink;
> .is {
color: rebeccapurple;
> .awesome {
color: deeppink;
}
}
}
Тем временем подъехала новая версия Nuxt 3.4.0 🎊🎉
🛠️ Более простая конфигурация Devtools
🎁 Объектный синтаксис при создании плагинов
🪄 Transitions API для переходов между страницами
а так же много всего интересного, команда накста аж целый пост запилила в своем блоге https://nuxt.com/blog/v3-4
на самом деле в релизноутах сильно больше описано всякого, кому интересно обязательно заглядывайте 👀
https://github.com/nuxt/nuxt/releases/tag/v3.4.0
🛠️ Более простая конфигурация Devtools
🎁 Объектный синтаксис при создании плагинов
🪄 Transitions API для переходов между страницами
а так же много всего интересного, команда накста аж целый пост запилила в своем блоге https://nuxt.com/blog/v3-4
на самом деле в релизноутах сильно больше описано всякого, кому интересно обязательно заглядывайте 👀
https://github.com/nuxt/nuxt/releases/tag/v3.4.0
Nuxt
Nuxt 3.4 · Nuxt Blog
Nuxt 3.4.0 is the latest release of Nuxt 3, bringing exciting new features, including support for the View Transitions API, transferring rich JavaScript payloads from server to client - and much more.
Вы не поверите, какой сегодня день недели 😏
Вышел Vue 3.3.0
https://blog.vuejs.org/posts/vue-3-3
🍾 Reactivity Transform ($ref) признано устаревшим, но сделали defineProps с реактивными переменными (opt-in)
👩💻 Много улучшений для типизации: импорт типов, generic-компоненты, удобные defineProps, даже слоты можно типизировать
🚀Улучшили toRef и ввели toValue (нет, это не unref)
Весь список:
https://blog.vuejs.org/posts/vue-3-3
Вышел Vue 3.3.0
https://blog.vuejs.org/posts/vue-3-3
🍾 Reactivity Transform ($ref) признано устаревшим, но сделали defineProps с реактивными переменными (opt-in)
🚀Улучшили toRef и ввели toValue (нет, это не unref)
Весь список:
https://blog.vuejs.org/posts/vue-3-3
Please open Telegram to view this post
VIEW IN TELEGRAM
blog.vuejs.org
Announcing Vue 3.3 | The Vue Point
The official blog for the Vue.js project
Сегодня конечно не четверг, но держите новый релиз Nuxt!
⚡️Обновили vue до v3.3.0
🙌 Обновили Nitropack до v2.4
⏰ Реализовали конфигурацию под разные environment
На самом деле там ещё много интересного, а я пойду обновлю накст у себя в проекте
https://github.com/nuxt/nuxt/releases/tag/v3.5.0
⚡️Обновили vue до v3.3.0
🙌 Обновили Nitropack до v2.4
⏰ Реализовали конфигурацию под разные environment
На самом деле там ещё много интересного, а я пойду обновлю накст у себя в проекте
nuxi upgrade --force
😉https://github.com/nuxt/nuxt/releases/tag/v3.5.0
GitHub
Release v3.5.0 · nuxt/nuxt
3.5.0 is a minor (feature) release with lots of new features to play with.
👀 Highlights
⚡️ Vue 3.3 released!
Vue 3.3 has been released, with lots of exciting features, particularly around type sup...
👀 Highlights
⚡️ Vue 3.3 released!
Vue 3.3 has been released, with lots of exciting features, particularly around type sup...
В прошлую пятницу вышло большое обновление Nuxt v3.6.0, в этом релизе выкатили много всего
🧩 Дали возможность делать кастомный индикатор загрузки в spa режиме
⚡️ Улучшили производительность
🔥 Улучшили статичные серверные компоненты, теперь они не занимают основной бандл
🎨 Улучшили дедупликацию глобальных стилей
🎬 Подкрутили возможности для анимации страниц
✨ Добавили поддержку провайдеров, для генерации статических ресурсов (пока только для vercel и netlify)
💪 Улучшили поддержку типов
⚗️ Обновили Nitro до v2.5, там кстати много интересного, в том числе экспериментальная поддержка потокового рендеринга
🛠️ Добавили разных утилит для разработчиков модулей
Конечно же, ознакомиться со всем списком изменений можно в changelog
P.S. В ближайший месяц ждем версию 3.7, с еще большим списком улучшений 😉
🧩 Дали возможность делать кастомный индикатор загрузки в spa режиме
⚡️ Улучшили производительность
🔥 Улучшили статичные серверные компоненты, теперь они не занимают основной бандл
🎨 Улучшили дедупликацию глобальных стилей
🎬 Подкрутили возможности для анимации страниц
✨ Добавили поддержку провайдеров, для генерации статических ресурсов (пока только для vercel и netlify)
💪 Улучшили поддержку типов
⚗️ Обновили Nitro до v2.5, там кстати много интересного, в том числе экспериментальная поддержка потокового рендеринга
🛠️ Добавили разных утилит для разработчиков модулей
Конечно же, ознакомиться со всем списком изменений можно в changelog
P.S. В ближайший месяц ждем версию 3.7, с еще большим списком улучшений 😉
Всем дороу!
Правильно ли я понимаю, что если я у меня есть базовый интерфейс для эмитов, то заэкстендить с заменой типа значения я его не могу в новом синтаксисе?
Типа есть вот:
Правильно ли я понимаю, что если я у меня есть базовый интерфейс для эмитов, то заэкстендить с заменой типа значения я его не могу в новом синтаксисе?
Типа есть вот:
interface IBaseInputEmits {
'update:modelValue': [value: InputModelValueType]
'change': [value: Event]
}
И я не могу сделатьinterface ISomeNewInput extends IBaseInputEmits {
'update:modelValue': [value: number | string]
'change': [value: number | string]
}
const emit = defineEmits<ISomeNewInput>()
Я вот что не пойму, вот есть у меня интерфейс для эмитов в новом синтаксисе
export interface IBaseInputEmits {
'update:modelValue': [value: InputModelValueType]
'focus': [value: Event]
'blur': [value: Event]
'input': [value: Event]
'change': [value: Event]
'keydown': [value: Event]
'keyup': [value: Event]
'request-start': [value: string | object]
'request-done': [value: string | object]
'request-failed': [value: string | object]
}
Я его пытаюсь использовать в defineEmits:const emit = defineEmits<IBaseInputEmits>()
Почему шторму это не нравится?Роадмап по Вую тут увидел
https://roadmap.sh/vue
https://roadmap.sh/vue
roadmap.sh
Vue Developer Roadmap: Learn to become a Vue developer
Community driven, articles, resources, guides, interview questions, quizzes for vue development. Learn to become a modern Vue developer by following the steps, skills, resources and guides listed in this roadmap.