quasar 參考文檔


1,開篇之義:

當需要做某些框架的時候,使用到了Quasar。想要快速的了解與應用參考可查看本文檔。
中文文檔鏈接:https://quasar.dev/start/upgrade-guide

為什么選擇Quasar?

優點 其它
開箱即用的提供給網站和應用程序的最先進的UI(遵循《Material指南》) 基於Vue.js
對每種構建模式 SPA、SSR、PWA、移動應用程序、桌面應用程序和瀏覽器擴展 提供了一流的支持 SPAs (單頁應用)
SSR (服務器端渲染的應用) (+可選的PWA客戶端接管)
PWA(漸進式網頁應用)
BEX (瀏覽器擴展) 通過Cordova或Capacitor構建移動APP(Android、iOS…) 多平台桌面應用(使用Electron)
注重性能的框架
自動tree shaking
社區支持
處理整個開發經驗(甚至包括創建應用程序的圖標和啟動畫面)

2,快速開始

三種安裝方式:

方式 操作 備注
通過CDN嵌入現有項目,漸進式集成 https://quasar.dev/start/umd
Vue CLI插件與Quasar一起使用 $ vue --version
#安裝 Vue CLI (v4.5.11 +)
$ npm install -g @vue/cli
$ vue create my-app
$ cd my-app
$ yarn add --dev vue-cli-plugin-quasar@3
$ vue invoke quasar
Quasar CLI(推薦) # Node.js >=12.22.1 is required.
$ yarn global add @quasar/cli
# or
$ npm install -g @quasar/cli

3,應用手冊

3.1,目錄結構
├── public/                  # 純靜態資源(直接復制)
├── src/
│   ├── assets/              # 動態資源(由webpack處理)
│   ├── components/          # 用於頁面和布局的.vue組件
│   ├── css/                 # CSS/Stylus/Sass/...文件
|   |   ├── app.styl
|   │   └── quasar.variables.styl # 供您調整的Quasar Stylus變量
│   ├── layouts/             # 布局 .vue 文件
│   ├── pages/               # 頁面 .vue 文件
│   ├── boot/                # 啟動文件 (應用初始化代碼) 
│   ├── router/              # Vue路由
|   |   ├── index.js         # Vue路由定義
|   │   └── routes.js        # App路由定義
│   ├── store/               # Vuex Store
|   |   ├── index.js         # Vuex Store 定義
|   │   ├── <folder>         # Vuex Store 模塊...
|   │   └── <folder>         # Vuex Store 模塊...
│   ├── App.vue              # APP的根Vue組件
│   └── index.template.html  # index.html模板
├── src-ssr/                 # SSR特定代碼(就像生產環境的Node網頁服務器)
├── src-pwa/                 # PWA特定代碼(如Service Worker)
├── src-cordova/             # Cordova生成的文件夾用於創建移動APP
├── src-electron/            # Electron特定代碼(如"main"線程)
├── src-bex/                 # BEX(瀏覽器擴展)特定代碼(如"main"線程)
├── dist/                    # 生產版本代碼,用於部署
│   ├── spa/                 # 構建SPA的例子
│   ├── ssr/                 # 構建SSR的例子
│   ├── electron/            # 構建Electron的例子
│   └── ....
├── quasar.conf.js           # Quasar App配置文件
├── babel.config.js          # Babeljs配置
├── .editorconfig            # editor配置
├── .eslintignore            # ESlint忽略路徑
├── .eslintrc.js             # ESlint配置
├── .postcssrc.js            # PostCSS配置
├── .stylintrc               # Stylus lint配置
├── .gitignore               # GIT忽略路徑
├── package.json             # npm腳本和依賴項
└── README.md                # 您的網站/應用程序的自述文件

3.1.1,常用配置文件:
quasar.conf.js

module.exports = function (ctx) { // can be async too (@quasar/app v2.1+)
  console.log(ctx)

  // 輸出到控制台的例子:
  {
    dev: true,
    prod: false,
    mode: { spa: true },
    modeName: 'spa',
    target: {},
    targetName: undefined,
    arch: {},
    archName: undefined,
    debug: undefined
  }

  // 根據這些參數上下文將會被創建
  // 當你運行"quasar dev"或"quasar build"時

  // 只為PWA模式指定字體
  extras: [
    ctx.mode.pwa // we're adding only if working on a PWA
      ? 'roboto-font'
      : null
  ]

  // 可以使用一個全局CSS文件用於SPA模式
  css: [
    ctx.mode.spa ? 'app-spa.styl' : null, // looks for /src/css/app-spa.styl
    ctx.mode.cordova ? 'app-cordova.styl' : null  // looks for /src/css/app-cordova.styl
  ]

  // 可以將開發服務器配置為在端口8000上運行SPA模式,在端口9000上運行PWA模式或在端口9090上運行其他模式:
  devServer: {
    port: ctx.mode.spa
      ? 8000
      : (ctx.mode.pwa ? 9000 : 9090)
  }

  // 從“@quasar/app”v2.1+開始,您現在可以在返回Quasar配置之前執行異步工作:
  // module.exports = async function (ctx) {
  const data = await someAsyncFunction()
  return {
    // ... use "data"
  }
  // }或者
  // module.exports = function (ctx) {
  return new Promise(resolve => {
    // some async work then:
    // resolve() with the quasar config
    resolve({
      //
    })
  })
  // }

}

3.1.2,常用命令:

環境 命令 環境 命令 描述
開發 $ quasar dev 生產 $ quasar build 運行開發服務器(使用默認主題)
開發 $ quasar dev -p 9090 生產 -- 運行在特定端口
開發 $ quasar dev -m 【ssr\pwa】 生產 $ quasar build -m 【ssr\pwa】 SSR or PWA 應用
開發 $ quasar dev -m cordova -T [android/ios] 生產 $ quasar build -m cordova -T [android ios]
開發 $ quasar dev -m [android/ios] 生產 $ quasar build -m [android ios]
開發 $ quasar dev -m electron 生產 $ quasar build -m electron Electron應用
開發 $ quasar dev -m ios -- some params --and options --here
$ quasar dev -m electron -- --no-sandbox --disable-setuid-sandbox
生產 $ quasar build -m ios -- some params --and options --here 將額外的參數和/或選項傳遞給
底層“cordova”或“electron”可執行文件:
3.2,路由

Quasar項目包含一個/src/router文件夾。 這包含您的網站/應用程序的路由配置:

“/src/router/index.js” 保存Vue路由初始化代碼
“/src/router/routes.js” 保存你的網站/應用的路由

3.3,配置兼容性

在 package.json 支持 IE 11:


"browserslist": [
  "ie 11", // <<-- add it
  ...
]
3.4,API代理開發

編輯/quasar.conf.js中的devServer.proxy。 有關詳細用法,請參閱Webpack Dev Server Proxy文檔。 但是這里有一個簡單的例子:


devServer: {
  proxy: {
    // 將所有以/api開頭的請求代理到jsonplaceholder
    '/api': {
      target: 'http://some.api.target.com:7070',
      changeOrigin: true,
      pathRewrite: {
        '^/api': ''
      }
    }
  }
}
3.5,啟動文件

啟動文件是一個簡單的可以選擇導出函數的JavaScript文件。 當啟動應用程序時,Quasar將調用導出的函數,並將具有以下屬性的一個對象傳遞給該函數: |

export default ({ app, router, store, Vue }) => {
  // something to do
}
  • app 根組件通過Vue實例化的對象
  • router 來自’src/router/index.js’的Vue路由器實例
  • store 應用Vuex存儲的實例 - 只有當您的項目使用Vuex(您有src/store)時才會傳遞store
  • Vue 和import Vue from 'vue'一樣,它在那里是為了方便
  • ssrContext 如果為SSR構建,則僅在服務器端可用
  • urlPath (@quasar/app 1.0.7+) URL的路徑名(路徑+搜索)部分;在客戶端(僅在客戶端),它也包含哈希值。
  • publicPath (@quasar/app 2+) 配置的公共路徑。
  • redirect (@quasar/app 1.0.7+) 重定向到另一個URL的調用函數。接受字符串(URL路徑)或Vue路由器位置對象。

WARNING
永遠不要在你的啟動文件中調用new Vue(App),因為這會完全破壞你的網站/應用程序。 您不需要它,因為Quasar CLI負責使用Vue實例化您的應用程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM