vue项目中,设置页面局部loading加载效果(element)

直接引用element的loading,默认的是全屏loading,实际中有很多地方不需要全屏loading,只需要某部分loading。

1、区域加载

在表格等容器中加载数据时显示。

<el-table
    v-loading="loading"
    :data="tableData"
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>

展示效果
在这里插入图片描述

2、自定义

可自定义加载文案、图标和背景色。

<el-table
    v-loading="loading"
    element-loading-text="拼命加载中"
    element-loading-spinner="el-icon-loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
    :data="tableData"
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
  </el-table>

展示效果
在这里插入图片描述

3、封装方法

loading框设置局部刷新,且所有请求完成后关闭loading框。
封装好的loading.js

// loading框设置局部刷新,且所有请求完成后关闭loading框
let loading;
function startLoading (targetdq) {
  loading = Vue.prototype.$loading({
    lock: true,
    text: '拼命加载中',
    background: 'rgba(0, 0, 0, 0.8)',
    target: document.querySelector(targetdq) // 设置加载动画区域
  })
}
//关闭loading
function endLoading () {
    loading.close();
}

在需要的页面中,引入loading.js,然后调用方法。

startLoading('.field-loading');
endLoading();

展示效果
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐