loading 加载

上官树
2023-12-01

loading 加载

他有几个参数
作用:加载数据时显示动效。

参数说明
targetLoading 需要覆盖的 DOM 节点。可传入一个 DOM 对象或字符串;若传入字符串,则会将其作为参数传入 document.querySelector以获取到对应 DOM 节点
lock同 v-loading 指令中的 lock 修饰符
text显示在加载图标下方的加载文案
spinner自定义加载图标类名
background遮罩背景色
customClassLoading 的自定义类名
body同 v-loading 指令中的 body 修饰符

例子:

  this.$nextTick(()=>{
                    loading=this.$loading({
                        target:'.filter-menus-box',
                        lock:true,
                        text:'loading',
                        spinner:'el-icon-loading',
                        background:'rgba(0,0,0,0.7)'
                    })
                })

区域加载
在表格等容器中加载数据时显示。
Element 提供了两种调用 Loading 的方法:指令和服务。对于自定义指令v-loading,只需要绑定Boolean即可。默认状况下,Loading 遮罩会插入到绑定元素的子节点,通过添加body修饰符,可以使遮罩插入至 DOM 中的 body 上。

 <template>
 2   <el-table
 3     v-loading="loading"
 4     :data="tableData"
 5     style="width: 100%">
 6     <el-table-column
 7       prop="date"
 8       label="日期"
 9       width="100">
10     </el-table-column>
11     <el-table-column
12       prop="name"
13       label="姓名"
14       width="100">
15     </el-table-column>
16     <el-table-column
17       prop="address"
18       label="地址">
19     </el-table-column>
20   </el-table>
21 </template>
22 
23 <style>
24   body {
25     margin: 0;
26   }
27 </style>
28 
29 <script>
30   export default {
31     data() {
32       return {
33         tableData: [{
34           date: '2021-05-03',
35           name: '张明',
36           address: '北京市延庆区'
37         }, {
38           date: '2021-05-03',
39           name: '张明',
40           address: '北京市延庆区'
41         }
],
46         loading: true
47       };
48     }
49   };
50 </script>

整页加载
页面数据加载时显示。
当使用指令方式时,全屏遮罩需要添加fullscreen修饰符(遮罩会插入至 body 上),想要要锁定屏幕的滚动,可以使用lock修饰符;当使用服务方式时,遮罩默认即为全屏,不需要重新设置。

<template>
 2   <el-button
 3     type="primary"
 4     @click="openFullScreen"
 5     v-loading.fullscreen.lock="fullscreenLoading">
 6     指令方式
 7   </el-button>
 8   <el-button
 9     type="primary"
10     @click="openFullScreen2">
11     服务方式
12   </el-button>
13 </template>
14 
15 <script>
16   export default {
17     data() {
18       return {
19         fullscreenLoading: false
20       }
21     },
22     methods: {
23       openFullScreen() {
24         this.fullscreenLoading = true;
25         setTimeout(() => {
26           this.fullscreenLoading = false;
27         }, 2000);
28       },
29       openFullScreen2() {
30         const loading = this.$loading({
31           lock: true,
32           text: 'Loading',
33           spinner: 'el-icon-loading',
34           background: 'rgba(0, 0, 0, 0.7)'
35         });
36         setTimeout(() => {
37           loading.close();
38         }, 2000);
39       }
40     }
41   }
42 </script>

服务
Loading 还可以以服务的方式调用。引入 Loading 服务:

import { Loading } from 'element-ui';

在需要调用时:

Loading.service(options);

options 参数为 Loading 的配置项,具体见下表。LoadingService 会返回一个 Loading 实例,可通过调用该实例的 close 方法来关闭它:

let loadingInstance = Loading.service(options);
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
  loadingInstance.close();
});
 类似资料: