加载
在数据加载时显示动效。
容器内加载
在容器(如表格)内加载数据时显示动效。
Element Plus 提供了两种调用加载的方式:指令和服务。对于自定义指令 v-loading,你只需为其绑定一个 boolean 值。默认情况下,加载遮罩会附加到使用该指令的元素上。添加 body 修饰符会使遮罩附加到 body 元素上。
自定义
你可以自定义加载文本、加载图标和背景颜色。
在绑定 v-loading 的元素上添加 element-loading-text 属性,其值将显示在加载图标下方。类似地,element-loading-spinner / element-loading-svg 和 element-loading-background 属性分别用于设置 SVG 图标、背景颜色值和加载图标。
警告
尽管 element-loading-spinner / element-loading-svg 属性支持传入 HTML 片段,但在网站上动态渲染任意 HTML 是非常危险的,因为它很容易导致 XSS 攻击。请确保 element-loading-spinner / element-loading-svg 的内容是可信的。切勿将用户提交的内容赋给 element-loading-spinner / element-loading-svg 属性。
全屏加载
在数据加载时显示全屏动效。
当作为指令使用时,全屏加载需要 fullscreen 修饰符,并且会附加到 body 上。在这种情况下,如果你希望禁用 body 的滚动,可以添加另一个修饰符 lock。当作为服务使用时,加载默认是全屏的。
服务
你也可以通过服务来调用加载。导入 Loading 服务
import { ElLoading } from 'element-plus'调用
ElLoading.service(options)参数 options 是 Loading 的配置,详情请参阅下表。LoadingService 返回一个 Loading 实例,你可以通过调用其 close 方法来关闭它。
const loadingInstance = ElLoading.service(options)
nextTick(() => {
// Loading should be closed asynchronously
loadingInstance.close()
})请注意,在这种情况下,全屏加载是单例的。如果在现有全屏加载未关闭之前调用新的全屏加载,将返回现有全屏加载实例,而不会实际创建另一个加载实例。
const loadingInstance1 = ElLoading.service({ fullscreen: true })
const loadingInstance2 = ElLoading.service({ fullscreen: true })
console.log(loadingInstance1 === loadingInstance2) // true调用其中任何一个的 close 方法都可以关闭此全屏加载。
如果 Element Plus 是完整引入的,一个全局方法 $loading 将注册到 app.config.globalProperties。你可以像这样调用它:this.$loading(options),它也返回一个 Loading 实例。
应用上下文继承 2.9.10
现在,Loading 构造函数接受一个 context 作为第二个参数,允许你将当前应用程序的上下文注入到 Loading 中,从而继承应用程序的所有属性。
您可以像这样使用它
提示
如果你全局注册了 ElLoading 组件,它将自动继承你的应用程序上下文。
import { getCurrentInstance } from 'vue'
import { ElLoading } from 'element-plus'
// in your setup method
const { appContext } = getCurrentInstance()!
ElLoading.service({}, appContext)API
配置项
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| target | Loading 需要覆盖的 DOM 节点。接受 DOM 对象或字符串。如果是字符串,它将被传递给 document.querySelector 以获取相应的 DOM 节点 | string / HTMLElement | document.body |
| body | 与 v-loading 的 body 修饰符相同 | boolean | false |
| fullscreen | 与 v-loading 的 fullscreen 修饰符相同 | boolean | true |
| lock | 与 v-loading 的 lock 修饰符相同 | boolean | false |
| 文本 | 显示在加载图标下方的加载文本 | string / VNode / array | — |
| spinner | 自定义加载图标的类名 | string | — |
| background | 遮罩的背景颜色 | string | — |
| customClass | 加载的自定义类名 | string | — |
| svg | 自定义 SVG 元素,用于覆盖默认加载图标 | string | — |
| svgViewBox | 设置加载 SVG 元素的 viewBox 属性 | string | — |
| beforeClose 2.7.8 | 加载尝试关闭前执行的函数。如果此函数返回 false,则关闭过程将被中止。否则,加载将关闭。 | Function | — |
| closed 2.7.8 | 加载完全关闭后触发的函数 | Function | — |
指令
| 名称 | 描述 | 类型 |
|---|---|---|
| v-loading | 在数据加载时显示动效 | boolean / LoadingOptions |
| element-loading-text | 显示在加载图标下方的加载文本 | string |
| element-loading-spinner | 自定义加载图标 | string |
| element-loading-svg | 自定义加载图标(与 element-loading-spinner 相同) | string |
| element-loading-svg-view-box | 设置加载 SVG 元素的 viewBox 属性 | string |
| element-loading-background | 遮罩的背景颜色 | string |
| element-loading-custom-class | 加载的自定义类名 | string |