同一个节点如何维护多个elementUI loading组件

Element提供了指令和服务两种方式使用它的loading组件

使用指令方式时只需在节点添加指令v-loading并给它一个变量来维护状态,就能实现开启与关闭

下面是element官网提供的服务方式调用loading组件的demo

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

显然,使用指令方式时,由于状态可以通过变量维护,因此我们能够灵活地通过任意函数维护状态来实现业务逻辑

但缺点是,同一个指令只能在同一个节点上绑定一次。

而使用服务方式时,可以通过修改options来实例化多个不同的loading实例,来满足不同的业务需求

但缺点是,为同一个非body节点添加多个服务时,需要传入target,此时单例将失效,因此如果创建了多个带target的服务,需要依次关闭

如何解决?

  • 服务方式

创建一个数组,每创建一个服务时,将其推入数组,这样就能够灵活的创建多个服务并随时能够关闭指定的服务

  • 指令方式

直接上代码

<div
    v-show="loading"
    class="absolute"
    v-loading="loading"
>
</div>
<style>
    &.absolute
      position absolute
      top 0
      bottom 0
      left 0
      right 0
</style>

将此节点插入父节点,通过维护loading变量即可,需要维护多个状态就插入多个节点与创建多个变量。如插入两个节点分别维护加载状态与加载完成后列表为空状态

最好加上v-show(v-if),因为absolute类覆盖了整个父节点,即使loading消失,层级仍然处在父节点之上,导致父节点中的其他节点事件如click,touch事件无效

原文地址:https://www.cnblogs.com/izerandom/p/11316943.html

时间: 2024-10-29 05:02:14

同一个节点如何维护多个elementUI loading组件的相关文章

Element-ui tree组件自定义节点使用方法

工作上使用到element-ui tree 组件,主要功能是要实现节点拖拽和置顶,通过自定义内容方法(render-content)渲染树代码如下~ 1 <template> 2 <div class="sortDiv"> 3 <el-tree :data="sortData" draggable node-key="id" ref="sortTree" default-expand-all :e

ReactJS实践(一)—— FrozenUI React化之Loading组件

在前面我们通过四篇文章入门了React的大部分主要API,现在则开始进入实践环节. 实践系列的开篇打算拿我司的FrozenUI来试验,将其部分UI组件进行React化,作为第一篇实践文章,将以较简单的Loading组件来入手,官网demo的效果如下图: 为了更好地开发,后续将以webpack工具来辅助,对其不了解的童鞋可以先查阅我的<webpack 入门指南>一文. 鉴于我们将复用 FrozenUI 的样式,所以在DOM结构.class命名上都应当尽量和原版的保持一致,在这个基础上来实现具有同

Flex 编写 loading 组件

Flex 界面初始化有时那个标准的进度条无法显示,界面长时间会处理空白的状态!我们来自定义一个进度条, 这个进度条加载在 Application 应用程序界面的 <s:Application 标签的 preinitialize 属性上: preinitialize="preInit(event, '')" 它就可以比 Flex 自执行的正常显示. 1.组件ZtipWindow.mxml <?xml version="1.0" encoding="

element-ui dialog组件添加可拖拽位置 可拖拽宽高

有几个点需要注意一下 每个弹窗都要有唯一dom可操作 指令可以做到 拖拽时要添加可拖拽区块 header 由于element-ui dialog组件在设计时宽度用了百分比, 这里不同浏览器有兼容性问题 实现拖拽宽高时 获取边缘问题 div定位 设置模拟边缘 <template> <el-dialog v-dialogDrag ref="dialog__wrapper"> <div class="dialog-body"> <

Angular23 loading组件、路由配置、子路由配置、路由懒加载配置

1 需求 由于Angular是单页面的应用,所以在进行数据刷新是进行的局部刷新:在进行数据刷新时从浏览器发出请求到后台响应数据是有时间延迟的,所以在这段时间就需要进行遮罩处理来提示用户系统正在请求数据. 2 loading组件简介 loading组件就是专门负责遮罩处理的,可以自定一个loading组件,也可以使用别人创建号的loading模块:loading组件生效后的效果如下: 参考资料:点击前往 3 编程步骤 3.1 创建一个angular项目 技巧01:版本必须是angular4及以上

primecoin 全节点日常维护操作

查看日志 tail -n 200 debug.log socket recv error Connection reset by peer (104) 通过查看日志发现大量的 socket recv error Connection reset by peer (104) 提示初步认为是恶意节点的破坏性操作,处理步骤如下: 使用 tcpdump 抓取网络包 tcpdump tcp port 9911 -C 1 -w ./9911.cap 如果上面命令返回 Permission denied 查看

Vue 之 element-ui upload组件的文件类型

在使用element-ui的upload上传组件的时候,有时候会遇到 控制上传文件类型 的需求,只需要配置accept属性为允许的类型即可,比如: <el-upload class="upload-demo" :action="this.uploadUrl" :on-preview="handlePreview" :on-remove="handleRemove" :on-success="uploadSucc

element-ui日期组件DatePicker设置日期选择范围Picker Options

element-UI提供了DatePicker日期选择器组件,可以让我们很方便的获取到日期,默认的选择是全部的日期都可以选择的,但是很多场景中我们要对日期选择范围做限定,比如出行日期就不能选过去的日期,订票时间要限制日期范围 官网提供了picker-options参数可以设置日期选择范围,具体操作看代码 // 页面引入组件, 加上picker-options这个参数 <el-date-picker v-model="exCheckDate" type="date&quo

element-ui日期组件DatePicker选择日期范围赋值编辑问题

最近在项目中使用element-UI的日期范围组件时遇到一个问题,相信很多人也做过这种场景,一个录入页面也同时是编辑页面,编辑的时候就需要先赋值.但是我给date组件赋值后,确无法操作了,change事件也触发不了,但是对应的值已经改变了,只是页面没改变,这真的是很神奇的bug.通过图片看下我遇到的问题 试了多次之后,发现是赋值的问题,date组件有一个displayValue属性,与页面展示的数据一致,一开始我想直接重置displayValue的值,但是发现displayValue是一个只读属