В Quasar v2 произошёл переход на Vue 3, что напрямую повлияло на структуру проекта и конфигурацию. Основные изменения:
quasar пакет напрямую, без
привязки к отдельным папкам src/components. Например:import { QBtn, QInput } from 'quasar'
boot, layouts, pages,
components остались, но структура src/statics
и src/assets подверглась уточнению. Ресурсы теперь
рекомендуется размещать в src/assets, а глобальные
статические файлы в public./* quasar.config.js */
import { defineQuasarConfig } from 'quasar'
export default defineQuasarConfig({
supportTS: true,
build: {
vueRouterMode: 'history'
},
cssAddon: true
})
plugins с указанием их подключений и опций. Например:plugins: [
'Notify',
{ name: 'Dialog', options: { persistent: true } }
]
src/css/quasar.variables.scss.Многие компоненты Quasar v2 получили новые API и улучшенную поддержку TypeScript:
QTable
v-model:pagination вместо устаревшего
:pagination.sync.<QTable
:rows="rows"
:columns="columns"
v-model:pagination="pagination"
@request="onRequest"
/>
QDialog и Notify
const result = await $q.dialog({
title: 'Подтвердите',
message: 'Вы уверены?'
}).onOk(() => true)
QSelect и QInput
v-model:model-value вместо старого
v-model.@update:model-value.import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{ path: '/', component: () => import('pages/Index.vue') }
]
const router = createRouter({
history: createWebHistory(),
routes
})
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
state: () => ({ name: '', isLoggedIn: false }),
actions: {
login(name) { this.name = name; this.isLoggedIn = true }
}
})
Boot файлы теперь поддерживают асинхронную инициализацию и имеют следующий синтаксис:
export default async ({ app, router, store, ssrContext }) => {
app.config.globalProperties.$myPlugin = 'value'
}
ssrContext.import { dark } from 'quasar'
dark.set(true) // включение тёмной темы
src/css
и импортировать через quasar.config.js.const QChart = () => import('quasar/src/components/chart/QChart.vue')
quasar upgrade --check.v-model на новый синтаксис обязательна для
корректной работы компонентов.v-model,
QTable, QSelect и диалоги.Миграция с Quasar v1 на v2 требует внимательного подхода к API компонентов, конфигурации CLI и интеграции с Vue 3, но при правильном планировании процесс занимает минимальное время и открывает новые возможности для масштабируемости и производительности.