Quasar — это фреймворк для разработки интерфейсов на JavaScript, который тесно интегрирован с Vue. С переходом на Vue 3 появилась необходимость обновления всех компонентов, плагинов и утилит Quasar для полной совместимости с новой версией ядра Vue.
Композиционный API: Vue 3 предоставляет новый API
для организации логики компонентов, известный как композиционный API.
Quasar полностью поддерживает этот подход, позволяя использовать
setup(), ref, reactive,
computed и другие функции реактивности без ограничений. Это
делает код более модульным и упрощает повторное использование логики в
разных компонентах.
Фрагменты и телепорт: В Vue 3 добавлена возможность
использовать вместо единственного
корневого элемента и компонент для
рендеринга содержимого в другой части DOM. Quasar обновил свои
компоненты таким образом, чтобы они могли работать с фрагментами,
например, диалоговые окна, всплывающие подсказки и меню поддерживают
по умолчанию.
Поддержка реактивности: В Vue 3 изменена система реактивности, использующая Proxy вместо Object.defineProperty. Все виджеты и утилиты Quasar, включая состояние компонентов и Vuex-модули, работают корректно с этой системой. Это обеспечивает мгновенное обновление интерфейса при изменении состояния без необходимости дополнительных обёрток.
Все базовые UI-компоненты Quasar были переписаны для совместимости с Vue 3:
для рендеринга в
body, что упрощает управление z-index и
позиционированием.Quasar-плагины также адаптированы под Vue 3:
app.use() нового Vue 3, обеспечивая
возможность глобальной регистрации плагинов без конфликтов.Quasar предоставляет специальные хуки для работы с Vue 3:
useQuasar() — возвращает объект $q,
который содержит доступ к конфигурации фреймворка, плагинам и
утилитам.useDialog(), useNotify() и другие функции
позволяют управлять компонентами программно, используя реактивные данные
без необходимости прямого обращения к $q.Пример использования Composition API с Quasar:
import { ref } from 'vue';
import { useQuasar } from 'quasar';
export default {
setup() {
const $q = useQuasar();
const message = ref('Привет, Quasar!');
function showNotification() {
$q.notify({
message: message.value,
color: 'green',
position: 'top-right'
});
}
return { message, showNotification };
}
}
Quasar в связке с Vue 3 полностью поддерживает TypeScript. Все компоненты и утилиты имеют корректные типы, что позволяет:
Для проектов, которые переходят с Vue 2 на Vue 3, Quasar предоставляет:
this.$q.dialog() с коллбэками, чтобы адаптировать код к
Composition API.Использование Vue 3 позволяет Quasar улучшить производительность за счёт:
Это делает интерфейсы более отзывчивыми и снижает нагрузку на браузер при большом количестве динамических компонентов.
Все сторонние библиотеки Vue 3 совместимы с Quasar. Благодаря этому можно использовать:
Это обеспечивает бесшовную интеграцию и позволяет строить современные SPA и PWA с полной поддержкой возможностей Vue 3.