為什麼捐款
API 瀏覽器
Notify

Notify 是一個 Quasar 插件,可以向使用者顯示動畫訊息(浮動在頁面中的所有內容之上),以通知的形式呈現。它們對於提醒使用者事件非常有用,甚至可以透過動作與使用者互動。也稱為 toast 或 snackbar。

載入 Notify API...
安裝

// quasar.config file

return {
  framework: {
    plugins: [
      'Notify'
    ],
    config: {
      notify: /* look at QuasarConfOptions from the API card */
    }
  }
}

用法

基本

在 Vue 檔案外部

import { Notify } from 'quasar'

Notify.create('Danger, Will Robinson! Danger!')
// or with a config object:
Notify.create({
  message: 'Danger, Will Robinson! Danger!'
})
在 Vue 檔案內部

import { useQuasar } from 'quasar'

setup () {
  const $q = useQuasar()

  $q.notify('Message')
  // or with a config object:
  $q.notify({...})
}
基本



提示

如果您定義任何動作,當使用者選擇動作時,通知將自動關閉。

帶有標題

標題



帶有圖示、頭像或旋轉圖示

帶有圖示



帶有頭像



帶有旋轉圖示



帶有動作

帶有動作



多行

多行



定位

定位與不同選項



提示

如需選項的完整列表,請查看 API 章節。

群組

每個通知都有一個底層的唯一群組,該群組由訊息 + 標題 + multiLine + 動作標籤 + 位置計算得出。當觸發多個具有相同群組的通知時,不會顯示所有通知並淹沒視圖,而只會在螢幕上保留第一個通知以及徽章。徽章內容表示自第一個通知出現在螢幕上以來,已觸發相同通知(且位置相同)的次數。

但是,如果您希望停用此行為,請指定 group: false。在下面的範例中,第一個按鈕每次點擊都會觸發相同的通知兩次。第二個按鈕已停用群組。但是,第三個按鈕具有自訂群組名稱,因此每個後續通知都會取代舊通知並遞增徽章編號。

群組



自訂徽章



逾時進度

如果您希望,有一種方法可以告訴使用者通知何時會從螢幕上消失。這適用於 timeout 未設定為 0 的情況。

逾時進度



可更新的通知

如果您有正在進行的程序,並且想要告知使用者其進度,而不會阻止他目前正在執行的操作,那麼您可以產生可更新的通知。同時顯示旋轉圖示也很有用。

請注意,在下面的範例中,我們明確設定了“group: false”(因為只有非群組通知可以更新)和“timeout: 0”(因為我們希望完全控制何時關閉通知)。

可更新



預定義類型

有四種預定義的類型可以直接使用:“positive”、“negative”、“warning” 和 “info”

開箱即用類型



此外,您可以註冊自己的類型,甚至覆寫預定義的類型。執行此操作的最佳位置是在 @quasar/app-vite Boot File@quasar/app-webpack Boot File 中。

自訂類型



如何在啟動檔案中註冊

import { Notify } from 'quasar'

Notify.registerType('my-notif', {
  icon: 'announcement',
  progress: true,
  color: 'brown',
  textColor: 'white',
  classes: 'glossy'
})

使用 HTML

如果您指定 html: true 屬性,則可以在訊息中使用 HTML。請注意,這可能會導致 XSS 攻擊,因此請確保自行清理訊息。

不安全的 HTML 訊息



設定屬性

您可以透過設定 attrs 物件屬性,在通知本身上設定自訂 HTML 屬性。對於個別通知動作,您可以像任何其他屬性一樣直接傳遞它們。

import { useQuasar } from 'quasar'

setup () {
  const $q = useQuasar()

  $q.notify({
    // ...

    attrs: {
      // for the notification itself:
      role: 'alertdialog'
    },

    actions: [
      {
        icon: 'close',
        // for individual action (button):
        'aria-label': 'Dismiss'
      }
    ]
  })
}

以程式方式關閉

通知的目的是僅由使用者關閉,但在特殊情況下,您可以透過程式方式關閉。當您設定無限逾時 (0) 時,這尤其有用。

const dismiss = $q.notify({...})
...
dismiss()

設定預設值

有兩種設定將套用於所有通知的預設組態的方法:透過 quasar.config 檔案 > framework > config > notify 物件(請參閱安裝章節)或以程式方式(請參閱下文)。

我們將說明透過 @quasar/app-vite Boot File@quasar/app-webpack Boot File 設定預設值(在程式碼中的任何位置工作方式相同,但啟動檔案可確保在您的應用程式啟動之前執行此操作)

首先,我們建立啟動檔案。我們將其命名為 “notify-defaults.js”。

$ quasar new boot notify-defaults [--format ts]

將建立的 notify-defaults.js 檔案新增至 /quasar.config 檔案中的 boot 陣列

module.exports = function (ctx) {
  return {
    // ...
    boot: ['notify-defaults'],
    // ...
  }

然後,我們編輯新建立的 /src/boot/notify-defaults.js

import { Notify } from 'quasar'

Notify.setDefaults({
  position: 'top-right',
  timeout: 2500,
  textColor: 'white',
  actions: [{ icon: 'close', color: 'white' }]
})

警告

您只能透過此方法設定預設 actions。在 /quasar.config 檔案中指定帶有處理常式的 actions 無法且將不會運作。

我們也可以在某些 Vue 檔案中設定預設值

在 Vue 組件內部

import { useQuasar } from 'quasar'

setup () {
  const $q = useQuasar()

  $q.notify.setDefaults({
    position: 'top-right',
    timeout: 2500,
    textColor: 'white',
    actions: [{ icon: 'close', color: 'white' }]
  })
}