当前位置: 首页 > news >正文

element - - - - - 你不知道的loading使用方式

求人不如求己

你不知道的loading使用方式

  • 1. 指令方式使用
    • 1.1 默认loading
    • 1.2 自定义loading
    • 1.3 整页加载
  • 2. 服务方式使用
    • 2.1 this.$loading的使用
    • 2.2 Loading.service的使用

关于页面交互,最害怕的就是接口等待时间太长,用户体验不好。

而如何提高用户体验呢?接口返回速度这个是后端同学去优化,前端同学也可通过加载loading来优化体验

Element 提供了两种调用 Loading 的方法:指令和服务

详情可查看官网 : Element Loading 加载

1. 指令方式使用

1.1 默认loading

对于自定义指令v-loading,只需要绑定Boolean即可。默认状况下,Loading 遮罩会插入到绑定元素的子节点,通过添加body修饰符,可以使遮罩插入至 DOM 中的 body 上。

使用方式如下:

<template><div v-loading="loading">指定loading插入区域</div>
</template>
<script>
export default {name: "loading",data() {return {loading: false};},mounted() {this.loading = true;setTimeout(() => {this.loading = false;}, 2 * 1000);}
};
</script>
<style lang='scss' scoped>
</style>

1.2 自定义loading

在绑定了v-loading指令的元素上添加element-loading-text属性,其值会被渲染为加载文案,并显示在加载图标的下方。类似地,element-loading-spinnerelement-loading-background属性分别用来设定图标类名背景色值

使用方式如下:

<template><divv-loading="loading"element-loading-text="拼命加载中"element-loading-spinner="el-icon-loading"element-loading-background="rgba(0, 0, 0, 0.8)">指定loading插入区域</div>
</template>
<script>
export default {name: "loading",data() {return {loading: false};},mounted() {this.loading = true;setTimeout(() => {this.loading = false;}, 2 * 1000);}
};
</script>
<style lang='scss' scoped>
</style>

1.3 整页加载

当使用指令方式时,全屏遮罩需要添加fullscreen修饰符(遮罩会插入至 body上),此时若需要锁定屏幕的滚动,可以使用lock修饰符;当使用服务方式时,遮罩默认即为全屏,无需额外设置。

使用方式如下:

<template><div v-loading.fullscreen.lock="loading">整页加载loading</div>
</template>
<script>
export default {name: "loading",data() {return {loading: false};},mounted() {this.loading = true;setTimeout(() => {this.loading = false;}, 2 * 1000);}
};
</script>
<style lang='scss' scoped>
</style>

2. 服务方式使用

如果完整引入了 Element,那么 Vue.prototype 上会有一个全局方法 $loading,它的调用方式为:this.$loading(options),同样会返回一个 Loading 实例。

以服务的方式调用的 Loading 需要异步关闭

2.1 this.$loading的使用

<template><div id="loading_dom"><el-button type="primary" @click="openLoading">服务方式开启loading</el-button></div>
</template>
<script>
export default {name: "loading",data() {return {};},methods: {openLoading() {// 开启loadingconst loadingInstance = this.$loading({lock: true, //lock的修改符--默认是falsetext: "Loading", //显示在加载图标下方的加载文案spinner: "el-icon-loading", //自定义加载图标类名background: "rgba(0, 0, 0, 0.1)", //遮罩层颜色target: document.querySelector("#loading_dom") //loading覆盖的dom元素节点 默认插入body标签});// 关闭loading时机setTimeout(() => {loadingInstance.close();}, 2 * 1000);}}
};
</script>
<style lang='scss' scoped>
</style>

2.2 Loading.service的使用

<template><div><el-button type="primary" @click="openLoading">开启loading</el-button></div>
</template>
<script>
import { Loading } from "element-ui";
export default {name: "loading",data() {return {};},methods: {openLoading() {let loadingInstance = Loading.service(options);this.$nextTick(() => {// 以服务的方式调用的 Loading 需要异步关闭loadingInstance.close();});}}
};
</script>
<style lang='scss' scoped>
</style>
http://www.lryc.cn/news/41099.html

相关文章:

  • C++程序调用IsBadReadPtr或IsBadWritePtr引发内存访问违例问题的排查
  • IntelliJIDEA 常用快捷键
  • Python自动化抖音自动刷视频
  • 使用vite创建vue3工程
  • 嵌入式学习笔记——STM32的时钟树
  • Python学习(2)-NumPy矩阵与通用函数
  • 剑指 Offer II 035. 最小时间差
  • Spark SQL函数定义【博学谷学习记录】
  • 模拟实现STL容器之vector
  • ChatGPT-4.0 : 未来已来,你来不来
  • Java反射(详细学习笔记)
  • 学习 Python 之 Pygame 开发魂斗罗(十二)
  • Linux下字符设备驱动开发以及流程介绍
  • Web自动化框架断言方法实现
  • 8大核心语句,带你深入python
  • 【批处理】- 批处理自动安装Mysql与Redis
  • 聊聊华为的工作模式
  • 燕山大学-面向对象程序设计实验-实验6 派生与继承:多重派生-实验报告
  • 分割两个字符串得到回文串[抽象--去除具体个性取共性需求]
  • 【LeetCode】1609. 奇偶树、1122. 数组的相对排序
  • 【C++初阶】4. Date类的实现
  • ES6新特性--变量声明
  • 【Django】缓存机制
  • 我的创作纪念日——一年的时间可以改变很多
  • Jetson Nano驱动机器人的左右两路电机
  • 如何通过openssl生成公钥和私钥?
  • Verilog的If语句和Case语句
  • HJ31 单词倒排
  • leetcode——203.移除链表元素
  • GPT-4来袭:开启人工智能新时代