loading 加载

本文介绍了Vue.js中使用loading加载动效的方法,包括区域加载和整页加载。提供了v-loading指令的使用,如绑定Boolean和使用body、fullscreen、lock修饰符。同时,也提到了Loading服务的引入和调用,以及如何关闭加载实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值