关于 quasar-skilld
quasar-skilld 为 Quasar 2.33.1 提供开发参考,面向使用 Vue 3 构建应用的开发者。它整理离线文档、API 信息、常见任务、最佳实践与升级注意事项。
主要功能
- 01查阅包内离线文档
- 02索引组件与 API 信息
- 03提供安装及常见任务示例
- 04整理最佳实践与安全事项
- 05汇总版本升级变化
适用场景
- 01在开发中查询组件属性与事件
- 02配置 Quasar Vite 插件
- 03排查 SSR 与性能实践
- 04从旧版升级至 Quasar 2.33.1
MCP 相关
内容说明 `@quasar/mcp` 可将 Quasar 文档提供给支持 MCP 的 Agent;该技能也指引开发者查阅包内文档。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ skilld-dev/ vue-ecosystem-skills --skill quasar-skilld安装后在 Claude Code 中输入/quasar-skilld确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-surface.mdbest-practices.mdinstallation.mdoffline-docs.mdsecurity.mdwhats-new.md详细介绍
Quasar [email protected]
适用于 SPA、PWA、SSR、SSG、移动端(Cordova/Capacitor)和桌面端(Electron)应用的 Vue 3 UI 框架,可使用同一套代码库构建。仅支持 Vue 3。ESM 包,Node >= 22(package.json:102-104)。本 Skill 的基准版本:quasar 2.33.1(2026-09-22)。
首先:阅读已安装包中附带的文档
Quasar 2.33+ 内置了离线文档。在猜测 API 之前,请先查看项目的 node_modules/quasar:
dist/api/<Name>.json— 每个组件、插件和指令的 props、插槽、事件、方法,并带有addedIn版本标记。这是权威依据。dist/mcp/**/*.md— quasar.dev 页面(组件、插件、指令、组合式函数、工具函数、样式、布局)的 Markdown;dist/mcp/api/<Name>.md以精简易读的格式提供相同 API。dist/mcp/meta.json(160 个页面,version: 2.33.1)为所有页面编制了索引。@quasar/mcpMCP 服务会向支持 MCP 的 Agent 提供相同文档。
详情和搜索命令:references/offline-docs.md
包结构
| 入口 | 路径 | 备注 |
|---|---|---|
| 浏览器 ESM | dist/quasar.client.js | 默认 import 目标 |
| Node/服务端 | dist/quasar.server.prod.js | 未使用 Vite 插件时 Node/Vitest 解析的目标 |
| UMD | dist/quasar.umd.prod.js | 搭配 Vue 3 全局构建版本用于 CDN |
| 类型 | dist/types/index.d.ts | |
| wrappers | wrappers/index.js | 无操作类型定义,已弃用;请使用 #q-app/wrappers(wrappers/index.js:9-16) |
| 语言包 | lang/*.js(75 个) | import langDe from 'quasar/lang/de' |
| 图标集 | icon-set/*.js(44 个) | import iconSet from 'quasar/icon-set/material-icons' |
完整导出内容(组件、插件、指令、组合式函数、工具函数): references/api-surface.md
常见任务
使用 Vite 插件安装(@quasar/vite-plugin v2 需要 Vite 8+、
@vitejs/plugin-vue 6+、quasar v2.24+、Node 20.19+;仅支持 ESM;
dist/mcp/start/vite-plugin.md:10):
// main.js
import { createApp } from 'vue'
import { Quasar, Notify } from 'quasar'
import '@quasar/extras/material-icons/material-icons.css'
import 'quasar/src/css/index.sass'
import App from './App.vue'
createApp(App).use(Quasar, { plugins: { Notify } }).mount('#app')
// vite.config.js
import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
import vue from '@vitejs/plugin-vue'
plugins: [vue({ template: { transformAssetUrls } }), quasar()]
在 Composition API 中访问 $q:
import { useQuasar } from 'quasar'
const $q = useQuasar()
$q.notify('Saved') // $q.platform, $q.dark, $q.screen, $q.lang, ...
模板中使用与 API JSON 完全一致的 kebab-case props
(hide-dropdown-icon、no-error-icon);双向 props 绑定使用
v-model:propName(v1 的 .sync 修饰符已移除)。
Sass 变量:quasar >= 2.14 搭配 sass-embedded@^1.93.2;quasar <= 2.13
需要固定使用 [email protected](dist/mcp/start/vite-plugin.md:38-39)。
有关 Vite、Vitest、Storybook、UMD 和 Quasar CLI 的更多信息: references/installation.md
最佳实践(已对照随附的 2.33.1 文档验证)
- 为提升性能,优先使用响应式 CSS 类(
gt-sm、lt-md、窗口宽度可见性类),而非在 JS 中使用 Screen 插件。 - 大型
QTree:大数据集使用no-transition;超大数据集使用virtual-scroll(v2.25+)。 - 自定义 Dialog 插件组件:使用
useDialogPluginComponent进行初始化;直接绑定@hide="onDialogHide"(v2.28+ 会转发关闭原因)。 - 优先使用
useInterval/useTimeout/useAnimationFrame,而非原生计时器;组件卸载时会自动取消,且在 SSR 中会安全地变为空操作。 - SSR/SSG:除非服务端知道用户偏好(cookie),否则避免将
Dark模式设为'auto',否则用户会看到短暂的浅色闪烁。 - 使用 LoadingBar 插件,而非手动使用
QAjaxBar。 QInput的校验:Quasar 推荐 Regle(dist/mcp/vue-components/input.md:2397)。- Quasar CLI 项目:从
#q-app/wrappers导入 wrappers,切勿使用quasar/wrappers。
含引用的完整列表:references/best-practices.md
升级(2.20 -> 2.33.1 重点)
- v2.33.0:文档和精简 API 现在随软件包一同发布(离线可用,版本精确);与
@quasar/mcp服务搭配使用。修复:extractDate()会匹配最长的区域设置名称;QTable 每页行数选择器会遵循受控的v-model:pagination;虚拟滚动的scrollTo()不再在滚动事件后立即失效。 - v2.33.1:QPagination 的
input模式会在提交时清除输入的页码(src/components/pagination/QPagination.js:290-292);textToRgb()会保留rgb(R, G, B, A)的 alpha 值(src/utils/colors/colors.js:149-174)。 - v2.28:
QMenu/QTooltip移除了scroll-target属性;弹出层会自动跟踪每个滚动容器。Platform.is移除了ie、edgeChromium、winphone、kindle、silk。 - v2.29:
QItem/QChip上的@click监听器现在会隐式启用clickable。 - v2.31:只读字段(
QInput/QSelect/QFile/QField)现在会反映焦点状态,并在失焦时进行验证。 - v2.32:当容器形状已知时(
ratio/initial-ratio/height),QImg会在 SSR HTML 中渲染其<img>;否则可通过ssr-prerender启用此功能。QExpansionItem/QTree不再使用QSlideTransition包裹内容。 - 已弃用:
QInput/QFile的getNativeElement()-> 请改用nativeEl属性(dist/api/QInput.json)。
2.33.x 本身没有新增 API:dist/api/*.json 中不存在 addedIn: v2.33 标记。所有行为变更和新 API 及其发布说明 URL:
references/whats-new.md
安全
*-html 布尔属性(options-html、display-value-html、Notify/Dialog/Loading 上的 html)会启用 HTML 渲染,因此存在 XSS 风险:启用前请先进行清理。QEditor 没有清理选项;请在服务端移除 <script>/<iframe>。Quasar CLI 只会向客户端代码公开带有 QCLI_ 前缀的环境变量。