Loading加載組件:加載數(shù)據(jù)時顯示動效。
常見于加載數(shù)據(jù)量大的業(yè)務(wù)操作,附帶動態(tài)效果。
1.如何使用?區(qū)域加載
在表格等容器中加載數(shù)據(jù)時顯示。
/*Element 提供了兩種調(diào)用 Loading 的方法:指令和服務(wù)。對于自定義指令v-loading,只需要綁定Boolean即可。默認狀況下,Loading 遮罩會插入到綁定元素的子節(jié)點,通過添加body修飾符,可以使遮罩插入至 DOM 中的 body 上。*/
<template>
<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>
</template>
<style>
body {
margin: 0;
}
</style>
<script>
export default {
data() {
return {
tableData: [{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}, {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}],
loading: true
};
}
};
</script>
2.自定義
可自定義加載文案、圖標和背景色。
在綁定了v-loading指令的元素上添加element-loading-text屬性,其值會被渲染為加載文案,并顯示在加載圖標的下方。類似地,element-loading-spinner和element-loading-background屬性分別用來設(shè)定圖標類名和背景色值。
<template>
<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>
</template>
<script>
export default {
data() {
return {
tableData: [{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}, {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀區(qū)金沙江路 1518 弄'
}],
loading: true
};
}
};
</script>
3.整頁加載
頁面數(shù)據(jù)加載時顯示。
//當使用指令方式時,全屏遮罩需要添加fullscreen修飾符(遮罩會插入至 body 上),此時若需要鎖定屏幕的滾動,可以使用lock修飾符;當使用服務(wù)方式時,遮罩默認即為全屏,無需額外設(shè)置。
<template>
<el-button
type="primary"
@click="openFullScreen1"
v-loading.fullscreen.lock="fullscreenLoading">
指令方式
</el-button>
<el-button
type="primary"
@click="openFullScreen2">
服務(wù)方式
</el-button>
</template>
<script>
export default {
data() {
return {
fullscreenLoading: false
}
},
methods: {
openFullScreen1() {
this.fullscreenLoading = true;
setTimeout(() => {
this.fullscreenLoading = false;
}, 2000);
},
openFullScreen2() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
setTimeout(() => {
loading.close();
}, 2000);
}
}
}
</script>
4.服務(wù)
Loading 還可以以服務(wù)的方式調(diào)用。引入 Loading 服務(wù):
import { Loading } from 'element-ui';
在需要調(diào)用時:
Loading.service(options);
其中?options
?參數(shù)為 Loading 的配置項,具體見下表。LoadingService
?會返回一個 Loading 實例,可通過調(diào)用該實例的?close
?方法來關(guān)閉它:
let loadingInstance = Loading.service(options);
this.$nextTick(() => { // 以服務(wù)的方式調(diào)用的 Loading 需要異步關(guān)閉
loadingInstance.close();
});
需要注意的是,以服務(wù)的方式調(diào)用的全屏 Loading 是單例的:若在前一個全屏 Loading 關(guān)閉前再次調(diào)用全屏 Loading,并不會創(chuàng)建一個新的 Loading 實例,而是返回現(xiàn)有全屏 Loading 的實例:
let loadingInstance1 = Loading.service({ fullscreen: true });
let loadingInstance2 = Loading.service({ fullscreen: true });
console.log(loadingInstance1 === loadingInstance2); // true
此時調(diào)用它們中任意一個的?close
?方法都能關(guān)閉這個全屏 Loading。文章來源:http://www.zghlxwxcb.cn/news/detail-695597.html
如果完整引入了 Element,那么 Vue.prototype 上會有一個全局方法?$loading
,它的調(diào)用方式為:this.$loading(options)
,同樣會返回一個 Loading 實例。文章來源地址http://www.zghlxwxcb.cn/news/detail-695597.html
到了這里,關(guān)于ElementUI淺嘗輒止23:Loading 加載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!