前端组件库——Quasar知识点大全

简介: 教程来源 http://ng817.cn/ Quasar是基于Vue.js的跨平台UI框架,支持一套代码构建SPA、PWA、SSR、iOS/Android App、桌面应用及浏览器扩展。内置CLI、70+组件、主题定制与性能优化,开箱即用,GitHub星标超2.5万。

在Vue.js生态系统中,UI组件库的选择往往是一个令人纠结的问题。Element Plus成熟稳重,Ant Design Vue功能全面,Vuetify设计精美……然而,当你的需求不仅限于Web网站,还需要同时覆盖移动App、桌面应用、PWA等多个平台时,传统组件库就力不从心了——你需要为每个平台维护一套独立的代码。

Quasar(发音为/kweɪ.zɑɹ/)正是为解决这一痛点而生。它不仅是一套UI组件库,更是一个完整的跨平台解决方案。基于Vue.js,Quasar允许开发者编写一套代码,同时构建出SPA、SSR、PWA、移动App(iOS/Android)、桌面应用(Windows/Mac/Linux)以及浏览器扩展。这种“一套代码,多端运行”的能力,使其在跨平台开发领域独树一帜。

Quasar由来自摩尔多瓦的开发者Razvan Stoenescu全职维护,从2016年至今已持续迭代超过8年,在GitHub上收获了超过2.5万Star。其核心理念是:编写代码一次,同时将其部署为网站、移动应用和Electron应用。本文将系统全面地梳理Quasar的核心知识点,从核心理念到安装配置,从组件体系到主题定制,从跨平台能力到性能优化,帮助读者建立完整的知识体系。

一、Quasar概述

1.1 什么是Quasar
Quasar(发音为/kweɪ.zɑɹ/)是基于Vue.js的开源UI框架,采用MIT许可证。它的定位远超传统UI组件库——它是一套完整的跨平台应用开发解决方案。

Quasar的核心价值可以概括为:
image.png
1.2 Quasar的独特性
与Element Plus、Ant Design Vue等传统Vue组件库相比,Quasar有以下几个独特之处:

1.全平台覆盖
这是Quasar与所有其他Vue组件库最大的区别。Element Plus只做Web网站,Vant只做移动端H5,而Quasar同时覆盖:

SPA(单页应用):标准Web网站

SSR(服务端渲染):SEO友好的Web应用

PWA(渐进式Web应用):可安装的Web应用

移动App:通过Cordova或Capacitor打包为iOS/Android原生应用

桌面应用:通过Electron打包为Windows/Mac/Linux桌面应用

浏览器扩展:Chrome/Firefox等浏览器插件

这意味着,如果你需要同时拥有一个Web网站、一个手机App和一个桌面应用,传统方式需要三套代码、三个团队。使用Quasar,一套代码即可搞定。

2.内置最佳实践
Quasar不只是一个组件库,它通过CLI工具提供了完整的项目脚手架,内置了现代Web开发的最佳实践:

代码分割与懒加载

Tree Shaking(自动移除未使用代码)

CSS/JS压缩与缓存清除

ES6转译与Sourcemap

ESLint代码检查

单元测试与E2E测试集成

所有这些功能开箱即用,无需开发者手动配置。

3.零额外依赖
Quasar的设计哲学是“自给自足”。使用Quasar时,你不需要额外引入Bootstrap、Moment.js、Hammer.js等库——Quasar内部已经包含了这些功能,且占用空间极小。

4.性能优先
Quasar是极少数将性能作为首要设计目标的Vue组件库之一。其组件经过精心优化,使用Quasar带来的额外开销几乎不可察觉。CLI工具会自动进行Tree Shaking,确保只打包实际使用的组件代码。

1.3 Quasar vs 其他主流Vue组件库
image.png
选择建议:

选择Quasar:需要同时覆盖Web、移动App、桌面端,或追求极致的开发效率

选择Element Plus:纯Web中后台系统,团队熟悉Element生态

选择Vuetify:青睐Material Design风格,需要丰富的组件

选择Vant:仅需移动端H5页面

1.4 Quasar的生态系统
Quasar拥有完善的生态系统,包括:

Quasar CLI:核心命令行工具,用于创建项目、开发构建、打包发布

Quasar UI:70+高质量的Vue组件

Quasar Utils:跨平台的工具函数库

Quasar Icons:内置多种图标集(Material Icons、Fontawesome、Ionicons等)

App Extensions:社区贡献的扩展插件,可快速集成复杂功能

Quasar Play:在线代码沙箱,可快速尝试组件

Quasar的座右铭是:“编写代码一次,同时将其部署为网站、移动应用和/或Electron应用”。这意味着你只需掌握一套技术栈,就能覆盖几乎所有主流平台的开发需求。

二、安装与配置

2.1 环境准备
在使用Quasar之前,请确保开发环境满足以下要求:

Node.js >= 22(或任何更新的LTS版本)

NPM v6+ / Yarn v1+ / PNPM v8+ / Bun

注意:不要使用奇数的Node版本(如23),这些被视为实验版本

2.2 创建新项目
Quasar提供了两种CLI使用方式:全局安装和通过npx/yarn create直接创建。

方式一:通过create-quasar(推荐)

这是最推荐的入门方式,无需预先安装任何全局CLI:

# 使用yarn
yarn create quasar

# 使用npm
npm create quasar@latest

# 使用pnpm
pnpm create quasar

# 使用bun
bun create quasar

执行命令后,CLI会启动一个交互式向导,询问以下配置选项:

? Project name: my-quasar-project
? Select Quasar version: Quasar v2 (Vue 3 | latest and greatest)
? Pick your CSS preprocessor: Sass with SCSS syntax
? Check the features needed for your project: ESLint, TypeScript
? Choose Vue instance creation: auto
? Pick a component style: Composition API
? Whether to use Quasar plugins? Yes
? Pick your build tool: Vite (recommended)

方式二:安装全局CLI后创建

# 安装全局CLI
npm install -g @quasar/cli

# 创建新项目
quasar create my-project

2.3 项目结构
使用Quasar CLI创建的项目具有标准化的目录结构:

my-quasar-project/
├── public/              # 静态资源(favicon等)
├── src/
│   ├── assets/          # 需要经过构建处理的资源
│   ├── components/      # 可复用的Vue组件
│   ├── css/             # 全局CSS/SCSS文件
│   ├── layouts/         # 布局组件
│   ├── pages/           # 页面组件(路由对应)
│   ├── router/          # Vue Router配置
│   ├── stores/          # Pinia状态管理
│   └── App.vue          # 根组件
├── index.html           # 入口HTML
├── quasar.config.js     # Quasar核心配置文件
└── package.json

2.4 quasar.config.js配置文件
Quasar的核心配置集中在quasar.config.js中,这是理解Quasar的关键:

// quasar.config.js
module.exports = function (ctx) {
  return {
    // 构建目标:spa | pwa | ssr | cordova | capacitor | electron
    build: {
      target: 'spa',
      vueRouterMode: 'hash',  // hash 或 history
      distDir: 'dist/spa',
      transpile: false,
      addProductNameToMetaTags: false,
    },

    // 开发服务器配置
    devServer: {
      open: true,
      port: 9000,
    },

    // 框架配置
    framework: {
      config: {
        brand: {
          primary: '#1976D2',
          secondary: '#26A69A',
          accent: '#9C27B0',
        },
        dark: false,  // 深色模式
      },
      // 按需引入组件(推荐)
      components: [
        'QLayout',
        'QHeader',
        'QPageContainer',
        'QPage',
        'QBtn',
      ],
      // 按需引入指令
      directives: [
        'Ripple',
        'ClosePopup',
      ],
      // 按需引入插件
      plugins: [
        'Notify',
        'Loading',
        'Dialog',
      ],
    },

    // CSS预处理
    css: [
      'app.scss',  // 全局样式入口
    ],

    // 环境变量
    // 在代码中通过 process.env.MY_VAR 访问
    build: {
      env: {
        API_URL: ctx.dev
          ? 'http://localhost:3000'
          : 'https://api.example.com',
      },
    },
  };
};

2.5 开发与构建
Quasar CLI提供了一系列命令,覆盖完整的开发流程:

# 启动开发服务器
quasar dev

# 指定构建模式
quasar dev -m pwa        # 开发PWA模式
quasar dev -m electron   # 开发Electron模式
quasar dev -m capacitor  # 开发移动App模式

# 生产环境构建
quasar build

# 构建并打包移动App
quasar build -m capacitor -T android
quasar build -m capacitor -T ios

# 构建并打包桌面应用
quasar build -m electron

# 运行单元测试
quasar test --unit jest

# 运行E2E测试
quasar test --e2e cypress
相关文章
|
1月前
|
缓存 人工智能 测试技术
Claude Code 一周烧掉一半配额?我从逆向工程中看到了 Agent 测试的致命盲区
Claude Code近期频现隐蔽Bug:缓存TTL从1小时骤降至5分钟、客户端截断、伪造限速等,致Token消耗暴增、用户配额“蒸发”。问题根源在于Agent系统缺乏可观测性与透明经济模型,信任危机已蔓延至整个AI工具生态。
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
本文梳理阿里云RDS 2026年最新优惠价:MySQL(¥58/年)、MariaDB(¥98)、PostgreSQL(¥118)、SQL Server(¥298),均为新用户包年包月一口价,含ESSD存储、备份、监控等基础服务,支持主备高可用与在线扩容。
|
26天前
|
机器学习/深度学习 人工智能 Java
实测对比:企业落地的主流 AI 开发框架测评
本文以中立、客观、可落地为原则,实测对比JBoltAI、LangChain、Spring AI等主流AI框架,聚焦Java企业适配性、国产模型支持、工程化能力及存量系统改造难度,提供清晰选型建议。(239字)
143 0
|
资源调度 JavaScript IDE
使用Vue3+TS重构百星websocket插件(上)
使用Vue3+TS重构百星websocket插件(上)
使用Vue3+TS重构百星websocket插件(上)
|
2月前
|
存储 人工智能 算法
显卡不再是刚需?微软开源“省钱”神技:让100B大模型在普通CPU上跑疯了!
微软BitNet以1.58-bit三值量化技术,将百亿参数大模型压缩至CPU可运行级别:内存降10倍、运算转整数加减,Mac/ThinkPad即可实现5–7 tokens/s推理,功耗降低超70%。开源框架bitnet.cpp让本地私有AI真正普惠。(239字)
522 1
|
安全 Windows
服务器中如何检查端口是否开放
服务器中如何检查端口是否开放
|
2月前
|
人工智能 Shell Python
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(4)Subagents (子智能体)
本文介绍AI Agent开发中的子智能体(Subagent)模式。通过将复杂任务外包给临时子智能体处理,只返回最终摘要,避免上下文污染。父智能体保持干净对话,子智能体拥有独立上下文,完成任务后立即销毁,实现高效的任务分工和上下文管理。
1065 3
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
Java Spring 容器
两种Spring Boot 项目启动自动执行方法的实现方式
在Spring Boot项目启动后执行特定代码的实际应用场景中,可通过实现`ApplicationRunner`或`CommandLineRunner`接口完成初始化操作,如系统常量或配置加载。两者均支持通过`@Order`注解控制执行顺序,值越小优先级越高。区别在于参数接收方式:`CommandLineRunner`使用字符串数组,而`ApplicationRunner`采用`ApplicationArguments`对象。注意,`@Order`仅影响Bean执行顺序,不影响加载顺序。
955 2