为什么捐赠
API 浏览器
联系站长
Loading 加载插件

Loading(加载)插件可以在您的页面内容上方显示一个带有旋转器的遮罩层,告知用户后台正在执行某个操作。无需在页面中添加复杂的全局加载逻辑。

正在加载 Loading API...
安装

// quasar.config file

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

用法

Loading 会延迟(500ms)再显示,这样快速操作就不会导致屏幕闪烁。原理是:如果操作很快完成,加载旋转器还没来得及显示就被隐藏了,用户根本察觉不到。这种延迟机制避免了不必要的视觉干扰。

在 Vue 组件内部:

import { useQuasar } from 'quasar'

setup () {
  const $q = useQuasar()

  $q.loading.show({
    delay: 400 // ms
  })

  $q.loading.hide()
}

在 Vue 组件外部:

import {
  Loading,

  // 可选!下面的例子中用于
  // 自定义旋转器
  QSpinnerGears,
} from "quasar";

// 使用默认配置
Loading.show();

// 完全自定义
Loading.show({
  spinner: QSpinnerGears,
  // 其他属性
});

Loading.hide();

默认配置

默认配置



自定义

带提示信息



自定义容器



自定义样式



显示后切换加载画面



内容安全过滤

不安全的消息(已做安全过滤)



多个并行加载分组
v2.8+

TIP

当有多个并行进程时,可以将 Loading 实例分组,从而独立管理每个分组的加载状态。

通过在创建 Loading 实例时指定 group 属性,您可以使用返回的函数来更新或隐藏对应的分组。

显然,同一时刻只能显示一个分组,因此创建顺序决定了显示优先级——最后创建的分组优先显示(后进先出,LIFO)。

多个分组



您可以使用返回的函数来显示/更新/隐藏分组,也可以直接调用 Loading.show({ group: '..分组名..', ... })Loading.hide('..分组名..')

以下两种方式完全等价(您甚至可以混合使用):

/**
 * 第一种方式
 */

// 创建分组
const myLoadingGroup = Loading.show({
  group: 'my-group',
  message: 'Some message'
})

// 传入参数,更新该分组
myLoadingGroup({ message: 'Second message' })

// 不传参数,通知 Quasar 隐藏该分组
myLoadingGroup()

/**
 * 第二种等价方式
 */

// 创建分组
Loading.show({
  group: 'my-group',
  message: 'Some message'
})

// 更新分组(此时需要指定分组名)
Loading.show({
  group: 'my-group'
  message: 'Second message'
})

// 隐藏指定分组
Loading.hide('my-group')

WARNING

请注意,不带参数调用 Loading.hide() 会隐藏所有分组。因此如果您使用了分组功能,建议始终在调用 hide() 时传入分组名。

设置默认值

如果想设置一些默认值而不必每次都重复指定,可以通过 quasar.config 文件中的 framework > config > loading: {…} 来配置,也可以调用 Loading.setDefaults({...})$q.loading.setDefaults({...}) 来设置。