el-loading在el-dialog上使用

本文介绍如何在Vue项目中实现全局及局部Loading效果。通过使用v-loading指令,可以在Dialog组件上实现全屏遮罩;而利用$loading服务并指定目标DOM元素,则能实现仅在Dialog范围内显示遮罩的效果。

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

全局loading

使用v-loading指令方式,因为Dialog的最外层元素是全屏,故遮罩为全屏。

<template>
  <div>
    <el-button type="text" @click="dialogVisible = true; loading = true">Open Dialog</el-button>

    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%"
      v-loading="loading"
    >
      <span>this is a demo</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loading: false,
      dialogVisible: false
    };
  }
};
</script>

局部loading

使用服务方式时,传入dialog DOM 节点,遮罩在dialog处。

<template>
  <div>
    <el-button type="text" @click="open">Open Dialog</el-button>

    <el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
      <span>this is a demo</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dialogVisible: false
    };
  },
  methods: {
    open() {
      this.dialogVisible = true;
      this.$loading({
        target: '.el-dialog'
      });
    }
  }
};
</script>

请添加图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值