element-plus的el-dialog组件添加v-loading失败

在element-plus的el-dialog中添加loading,因为弹窗的数据是请求出来的,添加一个加载中用户体验会好些,但是我在使用v-loading不成功,并且控制台给出了提醒,如下Runtime directive used on component with non-element root node. The directives will not function as intended. 意思是这个指令要用在根节点,el-dialog好像是渲染出来的吧,这点我不太懂,这样的话不能直接使用v-loading但是还是有办法的就是以服务的方式调用,这里官网有提到,

首先是引入

import { ElLoading } from 'element-plus'

然后直接开始写就好了,target传的是类名这个官网有提到,可以使用ref获取dom传给他,重要的是这个定时器不添加的话获取不到元素,下面就是使用close()关闭弹窗

let loadingInstance: any
//-------
  setTimeout(() => {
    loadingInstance = ElLoading.service({
      target: '.el-dialog'
    })
  }, 10)
  //-------
  loadingInstance?.close()

最后这个service里面是有很多参数的可以配置的,可以自行去element-plus的官网查看

热门文章